《Java开发手册》
基本信息
作者: 桂颖 谷涛
出版社:电子工业出版社
ISBN:9787121209161
上架时间:2013-8-12
出版日期:2013 年7月
开本:16开
页码:834
版次:1-1
所属分类:计算机 > 软件与程序设计 > JAVA(J#) > Java
教材 > 计算机教材 > 本科/研究生 > 计算机专业教材 > 计算机专业课程 > 程序设计
更多关于 》》》《
Java开发手册》
内容简介
计算机书籍
《java开发手册》由浅入深、全面系统地介绍java编程和开发的方方面面。书中各章提供了大量有针对性的实例,供读者实战演练。本书针对初学和自学读者的特点,按照实际开发流程对java语言的程序设计进行讲解,简明易懂、实用性强。书中以通俗易懂的语言介绍java语言,力求做到深入浅出。
全书共30章,分为5篇。java基础篇介绍java的概念、数据类型、运算符、流程控制语句及数组等内容;面向对象篇介绍对象和类、访问控制符、继承、接口、封装类及异常的处理;java常用技术篇介绍字符串、集合、内部类、线程和相关算法的应用;界面编程篇介绍java的swing编程、相关布局使用的控件和图像处理等知识;高级技术篇介绍网络编程的基本知识、输入/输出流的使用和jdbc数据库开发技术。
无论对于java的初学者,还是有一定基础的高级用户,本书都是一本难得的参考书。本书非常适合使用java进行编程和开发的本科生、研究生及教师阅读,还适合广大科研和工程技术人员研读。
目录
《java开发手册》
第1篇 java基础
第1章 初步认识java1
1.1 java的概念1
1.1.1 java是什么1
1.1.2 java平台1
1.1.3 java的操作系统2
1.1.4 java的优点2
1.2 java的历史3
1.2.1 java的由来3
1.2.2 java的发展4
1.3 如何配置java开发环境4
1.3.1 开发工具包4
1.3.2 运行环境4
1.3.3 jdk的安装和下载5
1.3.4 环境变量的设置6
1.3.5 环境变量的测试7
1.4 第一个应用程序——helloworld7
1.4.1 helloworld程序7
1.4.2 编译与运行8
.1.4.3 编译和运行命令9
1.5 小结12
第2章 基本数据类型13
2.1 数据类型13
2.1.1 整型13
2.1.2 浮点型16
2.1.3 字符型19
2.1.4 布尔型20
2.2 常量21
2.2.1 标识符21
2.2.2 常量22
2.3 变量24
2.3.1 声明变量及初始化24
2.3.2 变量的作用域26
2.3.3 数据类型的自动转换28
2.4 基本数据类型之间的转换29
2.4.1 自动转换类型29
2.4.2 强制转换类型31
2.5 基本数据类型的对象包装类34
2.6 注释35
2.6.1 单行注释36
2.6.2 区域注释36
2.6.3 文档注释36
2.7 小结38
第3章 运算符详解39
3.1 算术运算符39
3.1.1 加法运算符39
3.1.2 减法运算符42
3.1.3 乘法运算符43
3.1.4 除法运算符43
3.1.5 取余运算符44
3.1.6 自增、自减运算44
3.2 关系与逻辑运算46
3.2.1 等于/不等于运算46
3.2.2 比较大小运算47
3.2.3 “与”运算48
3.2.4 “或”运算49
3.2.5 “非”运算50
3.3 三元运算符50
3.4 位运算51
3.5 移位运算53
3.5.1 “[[”左移运算53
3.5.2 “]]”右移运算53
3.5.3 “]]]”无符号右移运算54
3.5.4 具体实例55
3.6 赋值运算55
3.6.1 普通赋值运算56
3.6.2 运算赋值运算56
3.6.3 括号及运算符间的优先级关系57
3.7 java.lang.math类57
3.7.1 数学常量57
3.7.2 常用数学函数方法58
3.8 小结60
第4章 流程控制语句61
4.1 if语句61
4.1.1 常用语句形式61
4.1.2 完整语句形式62
4.2 if语句的嵌套63
4.3 switch语句65
4.3.1 switch判断语法65
4.3.2 判断表达式67
4.3.3 case表达式68
4.4 switch实例69
4.5 while循环语句71
4.6 do-while循环语句73
4.7 for循环语句74
4.7.1 for循环语法74
4.7.2 for循环实例76
4.7.3 for实现其他循环77
4.8 break语句78
4.9 continue语句79
4.10 小结81
第5章 不可或缺的数组82
5.1 数组的概念82
5.2 一维数组83
5.2.1 数组的声明83
5.2.2 创建数组及初始化83
5.2.3 数组的结构84
5.2.4 数组长度及越界84
5.2.5 数组程序实例85
5.3 多维数组86
5.3.1 多维数组的声明86
5.3.2 创建多维数组86
5.3.3 多维数组结构及初始化87
5.4 访问多维数组88
5.5 数组的相关用法90
5.5.1 复制数组90
5.5.2 数组修饰符92
5.5.3 搜索数组93
5.5.4 排序数组95
5.5.5 arrays类的sort方法98
5.5.6 数组的比较99
5.6 小结100
第2篇 面向对象
第6章 对象和类的“二人转”101
6.1 什么是面向对象101
6.1.1 面向对象的由来101
6.1.2 面向过程与面向对象思想的碰撞102
6.1.3 面向对象的背景及特点104
6.2 类与对象104
6.2.1 成员变量105
6.2.2 成员变量的默认值107
6.2.3 对象引用变量108
6.3 类的方法110
6.4 方法和变量引用111
6.4.1 调用不存在的方法或成员变量111
6.4.2 用空引用进行调用112
6.4.3 数组的空引用问题113
6.5 局部变量113
6.5.1 局部变量的作用域113
6.5.2 局部变量的初始化114
6.6 变长参数117
6.7 this对象引用118
6.8 系统常用类120
6.8.1 date类120
6.8.2 gregoriancalendar类122
6.8.3 常用系统已有类124
6.9 小结125
第7章 java中的访问控制符126
7.1 类的访问控制126
7.1.1 public级别126
7.1.2 默认访问级别128
7.2 成员的访问控制130
7.2.1 公共访问131
7.2.2 保护访问132
7.2.3 默认访问133
7.2.4 私有访问134
7.2.5 访问级别与数据封装136
7.3 static关键字137
7.3.1 静态成员变量138
7.3.2 静态最终成员变量139
7.3.3 static方法140
7.3.4 static代码块140
7.4 final的变量141
7.4.1 final成员变量141
7.4.2 final局部变量144
7.5 package的使用146
7.5.1 package的声明与创建146
7.5.2 引入package资源147
7.5.3 静态引入package150
7.6 小结152
第8章 父与子的继承153
8.1 什么是继承153
8.1.1 类和类的关系153
8.1.2 继承性156
8.1.3 类的继承156
8.2 继承与隐藏157
8.2.1 成员变量的继承157
8.2.2 成员变量的隐藏160
8.3 对象162
8.3.1 对象引用类型162
8.3.2 强制类型转换162
8.3.3 对象调用成员164
8.3.4 对象赋值和比较165
8.4 方法的继承167
8.5 方法的重写168
8.5.1 重写的条件170
8.5.2 返回类型的规则171
8.5.3 访问级别173
8.6 重写与继承的关系174
8.6.1 静态方法没有重写175
8.6.2 重写扩展父类功能177
8.6.3 替代性178
8.7 方法的重载178
8.7.1 重载的规则178
8.7.2 重载方法的匹配179
8.7.3 重写与重载183
8.8 final与继承183
8.8.1 最终的类183
8.8.2 最终的方法184
8.9 abstract与继承185
8.9.1 抽象类185
8.9.2 抽象方法186
8.10 继承的多态189
8.11 小结191
第9章 接口的世界192
9.1 接口的概述192
9.2 接口中的成员变量193
9.3 接口中的方法195
9.4 接口引用的使用198
9.4.1 可以指向的对象类型198
9.4.2 接口引用间的赋值198
9.4.3 类引用与接口引用间的赋值200
9.4.4 接口中方法无法使用的修饰符201
9.5 接口与抽象类203
9.6 接口的多态205
9.7 接口回调207
9.8 instanceof的使用208
9.8.1 基本语法使用208
9.8.2 不允许进行测试的情况211
9.9 小结212
第10章 构造器应用213
10.1 构造器的概念213
10.2 访问限制修饰符与构造器213
10.2.1 公有类型构造器213
10.2.2 默认与保护类型构造器214
10.2.3 私有类型构造器以及静态工厂方法215
10.3 构造器与返回类型216
10.4 创建对象218
10.5 重载构造器219
10.6 级联调用的构造器220
10.6.1 如何调用构造器220
10.6.2 级联调用221
10.6.3 默认构造器223
10.7 自定义构造器224
10.8 构造器不能继承225
10.9 调用兄弟构造器226
10.9.1 调用语法226
10.9.2 注意事项227
10.10 单列模式229
10.11 程序的加载230
10.12 小结232
第11章 迷惑的封装类233
11.1 封装类是什么233
11.2 字符串与基本数据类型值的转换235
11.3 封装类与基本数据类型的转换238
11.4 字符串与封装类的转换239
11.5 其他常用方法239
11.5.1 静态工厂方法239
11.5.2 isnan()方法241
11.5.3 equals()方法242
11.5.4 tostring()方法244
11.5.5 进制转换方法244
11.6 自动打包/解包245
11.7 特殊数值计算247
11.7.1 计算特大整数248
11.7.2 精确计算浮点型250
11.8 小结251
第12章 如何处理异常252
12.1 异常处理252
12.1.1 捕获异常的try和catch252
12.1.2 finally语句256
12.1.3 try、catch和finally语句259
12.2 捕获异常261
12.3 未捕获异常263
12.4 再次抛出异常264
12.4.1 异常的再抛出264
12.4.2 显性再抛出265
12.4.3 隐性再抛出268
12.5 方法重写对抛出异常的限制269
12.6 自定义异常271
12.6.1 自己创建异常类271
12.6.2 使用自定义异常273
12.6.3 显性再抛出异常的作用274
12.7 异常的匹配277
12.8 断言279
12.8.1 为什么要引入断言279
12.8.2 断言的语法规则280
12.8.3 断言与编译280
12.8.4 启动断言执行代码281
12.8.5 防止滥用断言282
12.9 小结283
第3篇 java常用技术
第13章 字符串应用284
13.1 string类284
13.2 string对象的内存机制289
13.3 string内存机制的优势290
13.4 string对象特殊机制的劣势294
13.5 stringbuffer类295
13.5.1 stringbuffer类的优势295
13.5.2 编写方法链297
13.5.3 stringbuffer类的重要方法298
13.6 stringbuilder类300
13.7 正则表达式301
13.7.1 正则表达式的语法302
13.7.2 pattern与matcher类的综合实例304
13.8 在string类中使用正则表达式308
13.8.1 匹配检查308
13.8.2 查找替换310
13.8.3 对字符串进行分析311
13.9 小结312
第14章 集合的使用313
14.1 集合框架的结构313
14.2 object类314
14.2.1 tostring方法的重写314
14.2.2 equals方法315
14.2.3 hashcode方法317
14.3 equals与hashcode方法的重写318
14.4 ordered与sorted的接口322
14.5 列表323
14.5.1 list接口323
14.5.2 数组实现列表324
14.6 向量326
14.7 链接实现列表327
14.7.1 依赖性倒置原理328
14.7.2 将数组转换为列表329
14.8 集合330
14.8.1 set接口330
14.8.2 hashset类331
14.8.3 equals与hashcode方法重写的作用332
14.8.4 linkedhashset类的使用335
14.9 sortedset接口与treeset类336
14.10 自定义sorted集合的类338
14.10.1 定制sortedset的排序规则340
14.10.2 集合的遍历343
14.10.3 使用for-each循环遍历集合345
14.11 映射346
14.11.1 map接口346
14.11.2 hashmap类347
14.11.3 hashtable类348
14.11.4 linkedhashmap类349
14.12 sortedmap接口与treemap类351
14.13 映射的遍历实例353
14.14 栈的实现355
14.14.1 stack类355
14.14.2 deque接口356
14.14.3 栈计算数学表达式358
14.15 集合元素的常用操作361
14.16 小结368
第15章 内部类应用369
15.1 非静态内部类369
15.2 在外部类中创建内部类369
15.3 在外部类外创建内部类371
15.4 内部类与外部类之间的成员互访373
15.4.1 在内部类中访问外部类的成员373
15.4.2 在外部类中访问内部类的成员374
15.5 预定义对象引用this375
15.6 局部内部类376
15.6.1 定义局部内部类及创建376
15.6.2 局部变量与局部内部类377
15.6.3 静态方法中的局部内部类380
15.7 静态内部类381
15.8 静态/非静态内部类的区别383
15.9 匿名内部类383
15.10 内部类的理解389
15.11 内部接口390
15.12 小结393
第16章 多线程的功力394
16.1 线程的概念394
16.2 自定义线程395
16.2.1 继承thread类395
16.2.2 实现runnable接口395
16.2.3 两种方式的比较396
16.3 创建线程对象396
16.3.1 继承thread类方式396
16.3.2 实现runnable接口方式397
16.4 启动线程398
16.5 同时使用多个线程400
16.6 线程的状态401
16.7 线程的使用403
16.7.1 睡眠使用403
16.7.2 线程的优先级405
16.7.3 线程的让步407
16.7.4 守护线程410
16.8 同步线程411
16.8.1 使用同步412
16.8.2 同步调度方法415
16.9 “生产者—消费者”案例415
16.10 notify方法420
16.11 同步语句块421
16.12 线程的死锁424
16.13 注意事项426
16.14 获取运行线程427
16.15 volatile关键字428
16.16 小结429
第17章 高级线程430
17.1 线程池430
17.2 固定尺寸线程池430
17.2.1 自定义尺寸固定线程池实例431
17.2.2 单任务线程池实例433
17.2.3 可变尺寸线程池实例434
17.2.4 延迟线程池的实例436
17.3 使用自定义线程池437
17.4 有返回值的线程调用440
17.4.1 callable接口440
17.4.2 future接口440
17.4.3 callable与future接口的使用实例441
17.5 封锁资源442
17.5.1 lock接口与reentrantlock类443
17.5.2 reentrantlock锁使用实例443
17.5.3 readwritelock接口与reentrantreadwritelock类446
17.5.4 reentrantreadwritelock读/写锁使用实例447
17.6 信号量450
17.6.1 semaphore类450
17.6.2 semaphore类使用实例451
17.7 队列453
17.8 阻塞栈459
17.8.1 blockingdeque接口与linkedblockingdeque类459
17.8.2 linkedblockingdeque类的使用实例460
17.9 线程安全的单变量操作461
17.9.1 atomic包461
17.9.2 atomic包中类的使用实例462
17.10 障碍器463
17.10.1 cyclicbarrier类464
17.10.2 cyclicbarrier类的使用实例464
17.11 小结466
第18章 内存管理技术467
18.1 程序中的“垃圾”是什么467
18.2 “垃圾”收集器470
18.3 如何收集“垃圾”472
18.3.1 finalize重写472
18.3.2 finalize安全问题474
18.4 最终守护者实例476
18.5 非线程“垃圾”477
18.6 线程“垃圾”479
18.7 三种特殊的引用481
18.7.1 弱引用实例481
18.7.2 软引用实例483
18.7.3 幻影引用实例485
18.8 小结485
第19章 数据结构和算法486
19.1 栈和队列486
19.1.1 栈的应用486
19.1.2 队列的应用489
19.2 三种排序492
19.2.1 冒泡排序492
19.2.2 选择排序495
19.2.3 插入排序498
19.3 小结501
第4篇 界面编程
第20章 swing编程502
20.1 swing是什么502
20.2 第一个swing小程序502
20.3 jframe类504
20.4 事件处理508
20.4.1 事件处理模型509
20.4.2 事件层次结构510
20.5 窗体事件511
20.6 事件适配器514
20.7 容器516
20.8 jpanel类517
20.9 jlabel类518
20.10 jbutton类521
20.11 监听器与事件源对应关系的研究524
20.12 小结527
第21章 布局流行设计528
21.1 布局管理器概述528
21.2 常用布局管理器528
21.3 flowlayout流布局的使用529
21.3.1 流布局简介529
20.3.2 流布局使用实例531
21.4 gridlayout网格布局532
21.4.1 网格布局简介532
21.4.2 网格布局使用实例533
21.5 borderlayout边框布局535
21.5.1 边框布局简介536
21.5.2 边框布局使用实例537
21.6 空布局539
21.6.1 空布局简介539
21.6.2 空布局使用实例540
21.7 cardlayout卡片布局541
21.7.1 卡片布局简介541
21.7.2 卡片布局使用实例543
21.8 boxlayout箱式布局545
21.8.1 箱式布局简介545
21.8.2 box容器简介547
21.8.3 box容器与boxlayout布局管理器使用实例548
21.9 弹簧布局551
21.9.1 弹簧布局简介551
21.9.2 控件与容器边框之间使用支架551
21.9.3 控件与容器边框之间使用弹簧552
21.10 springlayout类554
21.11 springlayout.constraints内部类555
21.12 spring类556
21.13 弹簧布局使用实例557
21.14 弹簧布局描述法使用实例558
21.15 小结561
第22章 各种swing控件562
22.1 控件类562
22.2 文本框与密码框的使用实例565
22.3 文本区使用实例569
22.4 开关按钮使用实例574
22.5 单选按钮与复选框577
22.5.1 jradiobutton类577
22.5.2 buttongroup类578
22.5.3 jcheckbox类578
22.6 itemevent事件579
22.7 itemevent事件实例579
22.8 单选按钮与复选框的
综合实例582
22.9 小结585
第23章 菜单、工具栏和对话框的使用586
23.1 菜单586
23.2 jmenubar类587
23.2.1 使用窗体提供的setjmenubar方法588
23.2.2 使用传统的add()方法588
23.3 jmenuitem类589
23.3.1 为菜单项添加助记符590
23.3.2 为菜单项设置快捷键590
23.4 jmenu类591
23.5 jradiobuttonmenuitem类593
23.6 jcheckboxmenuitem类593
23.7 菜单使用实例594
23.8 弹出式菜单实例597
23.9 鼠标事件使用实例598
23.10 工具栏的开发使用实例602
23.11 对话框使用实例606
23.11.1 jdialog类简介606
23.11.2 joptionpane类简介607
23.11.3 joptionpane对话框使用实例609
23.12 文件选择器611
23.13 颜色选择器614
23.14 文件、颜色对话框使用实例615
23.15 小结617
第24章 经典的树状列表618
24.1 树的专有名词618
24.2 jtree类619
24.3 树模型623
24.4 树的节点625
24.5 树的路径628
24.6 树的相关事件629
24.6.1 treeselectionevent事件629
24.6.2 treeexpansionevent事件630
24.6.3 treemodelevent事件631
24.7 树节点的绘制632
24.7.1 treecellrenderer接口632
24.7.2 defaulttreecellrenderer类632
24.7.3 自定义绘制器实例633
24.8 树状列表的综合实例635
24.8.1 实例概述635
24.8.2 搭建界面636
24.8.3 信息提示功能638
24.8.4 节点增删功能640
24.8.5 图标更改功能643
24.9 小结646
第25章 表格制造647
25.1 表格简介647
25.2 jtable类648
25.2.1 使用jtable的简单实例650
25.2.2 表格的数据模型652
25.2.3 表格模型的使用实例655
25.3 表格列657
25.3.1 tablecolumnmodel接口658
25.3.2 defaulttablecolumnmodel类659
25.4 表格的相关事件661
25.4.1 tablecolumnmodelevent事件661
25.4.2 tablemodelevent事件662
25.4.3 listselectionevent事件简介662
25.4.4 表格事件使用实例663
25.5 表格绘制器665
25.5.1 tablecellrenderer接口666
25.5.2 defaulttablecellrenderer类简介666
25.5.3 自定义表格绘制器667
25.6 表格编辑器668
25.6.1 tablecelleditor接口668
25.6.2 abstractcelleditor类668
25.6.3 defaultcelleditor类669
25.6.4 为特定的类型指定编辑器669
25.7 自定义表格编辑器与绘制器的使用实例670
25.7.1 实例概述670
25.7.2 界面框架的搭建670
25.7.3 自定义表格以及表格控件的添加671
25.7.4 自定义绘制器673
25.7.5 自定义编辑器的添加674
25.8 表格中的排序677
25.8.1 rowsorter类678
25.8.2 defaultrowsorter类678
25.8.3 tablerowsorter类简介679
25.9 表格中的过滤680
25.10 表格排序与过滤的使用实例682
25.10.1 实例概述682
25.10.2 搭建界面框架683
25.10.3 添加表格684
25.10.4 添加排序器685
25.10.5 添加设置过滤条件的控件686
25.10.6 表格设置过滤器688
25.11 小结691
第26章 图形绘制与动画692
26.1 绘制简单图形692
26.1.1 可以充当画布的控件692
26.1.2 绘图的paint方法692
26.2 画笔693
26.2.1 graphics对象的获取694
26.2.2 坐标系统694
26.3 调配颜色696
26.4 图形绘制的使用实例697
26.5 绘制文本698
26.5.1 drawstring方法698
26.5.2 控制字体698
26.5.3 文本绘制使用实例700
26.6 java 2d701
26.7 线条的粗细控制702
26.8 渐变颜色704
26.9 图形变换706
26.10 异或模式绘图708
26.11 抗锯齿709
26.12 动画710
26.12.1 编写动画的原理710
26.12.2 重新绘制710
26.13 timer类711
26.14 简单动画使用实例712
26.15 小结714
第27章 处理图像715
27.1 加载与绘制715
27.2 图标718
27.2.1 icon接口719
27.2.2 imageicon类721
27.3 处理图像编码723
27.3.1 jpeg编码器723
27.3.2 gifencoder编码器724
27.4 图像抓取726
27.4.1 createscreencapture方法726
27.4.2 抓屏功能使用实例726
27.5 图像滤镜的开发730
27.6 图像灰度处理使用实例731
27.7 rgb色彩通道过滤734
27.8 rgb色彩通道过滤使用实例735
27.9 卷积滤镜738
27.10 卷积滤镜使用实例740
27.11 小结743
第5篇 高级技术
第28章 网络编程的世界744
28.1 网络编程简介744
28.2 网络传输协议745
28.3 internet地址(inetaddress类)746
28.3.1 创建inetaddress对象的方法746
28.3.2 inetaddress的其他方法746
28.4 socket(套接字)747
28.5 socket使用实例748
28.5.1 客户端748
28.5.2 服务器端749
28.5.3 程序运行结果751
28.6 udp协议网络通信(datagram)752
28.7 面向无连接的使用实例752
28.7.1 发送端程序示例752
28.7.2 接收端程序示例754
28.7.3 程序运行结果755
28.8 url的网络编程756
28.8.1 url类与url的解析756
28.8.2 urlconnection类757
28.8.3 获取远程图像758
28.8.4 获取远程文档759
28.8.5 获取远程音频761
28.9 小结762
第29章 你来我往的i/o流763
29.1 流的简介763
29.2 文件file764
29.2.1 文件或目录的生成764
29.2.2 文件名的处理764
29.2.3 文件属性测试765
29.2.4 普通文件信息和工具765
29.2.5 目录操作765
29.3 file类使用实例765
29.4 randomaccessfile类767
29.4.1 构造方法767
29.4.2 文件指针的操作767
29.5 randomaccessfile使用实例767
29.6 字节流inputstream、outputstream770
29.6.1 输入、输出流770
29.6.2 文件输入、输出流772
29.6.3 缓冲输入、输出流773
29.6.4 数据输入、输出流775
29.6.5 对象输入、输出流776
29.7 字符流reader、writer780
29.7.1 字符读、写流780
29.7.2 输入、输出流781
29.7.3 文件读、写字符流782
29.7.4 字符缓冲区读、写流783
29.8 小结784
第30章 jdbc数据库应用技术785
30.1 数据库应用架构模型785
30.1.1 两层结构模型785
30.1.2 三层结构模型786
30.2 jdbc的层次结构787
30.3 jdbc编程入门788
30.3.1 数据库的创建788
30.3.2 jdbc-odbc连接桥789
30.3.3 加载jdbc驱动792
30.4 建立数据库连接793
30.5 sql命令794
30.6 结果集795
30.7 连接数据库使用实例796
30.8 预编译797
30.9 访问其他数据库800
30.9.1 mysql数据库的访问800
30.9.2 oracle数据库的访问802
30.10 事务804
30.10.1 编写事务804
30.10.2 批处理807
30.11 可滚动结果集809
30.12 可滚动与不可滚动结果集的比较810
30.13 控制游标移动810
30.14 元数据813
30.15 数据库综合实例817
30.16 小结834