Java和Android开发学习指南(第二版)
出版信息
Budi Kurniawan / 李强 / 人民邮电出版社 / 2016-3 / 69.00元
内容简介
本书是Java语言学习指南,特别针对使用Java进行Android应用程序开发展开了详细介绍。 全书共50章,分为两大部分。第1部分(第1章到第22章)主要介绍Java语言基础知识及其功能特性。第2部分(第23章到第50章)主要介绍如何有效地构建Android应用程序。 本书适合任何想要学习Java语言的读者阅读,特别适合想要成为Android应用程序开发人员的读者学习参考。
目录
目录
第1章 Java基础............................................. 1
1.1 下载和安装Java....................................... 1
1.1.1 在Windows上的安装................... 1
1.1.2 在Linux系统上的安装................. 2
1.1.3 在Mac OS X系统上的安装......... 2
1.1.4 设置系统环境变量........................ 2
1.1.5 测试安装........................................ 3
1.1.6 下载Java API文档........................ 3
1.2 第一个Java程序...................................... 3
1.2.1 编写Java程序............................... 3
1.2.2 编译Java程序............................... 4
1.2.3 运行Java程序............................... 4
1.3 Java编码惯例........................................... 5
1.4 集成开发环境........................................... 5
1.5 本章小结................................................... 6
第2章 语言基础.............................................. 7
2.1 ASCII和Unicode ..................................... 7
2.2 分隔符....................................................... 8
2.3 基本类型................................................... 8
2.4 变量........................................................... 9
2.5 常量..........................................................11
2.6 字面值......................................................11
2.6.1 整数字面值...................................11
2.6.2 浮点数字面值...............................12
2.6.3 布尔字面值...................................13
2.6.4 字符字面值...................................13
2.7 基本类型转换..........................................14
2.7.1 加宽转换.......................................14
2.7.2 收窄转换.......................................14
2.8 操作符......................................................15
2.8.1 一元操作符...................................16
2.8.2 算术操作符...................................17
2.8.3 相等操作符...................................18
2.8.4 关系操作符...................................18
2.8.5 条件操作符...................................19
2.8.6 位移操作符...................................19
2.8.7 赋值操作符...................................20
2.8.8 整数按位操作符& | ^ ...................20
2.8.9 逻辑操作符 & | ^ .........................21
2.8.10 操作符优先级 .............................21
2.8.11 提升 ............................................ 22
2.9 注释......................................................... 22
2.10 本章小结............................................... 23
第3章 语句...................................................... 24
3.1 概览......................................................... 24
3.2 if语句...................................................... 25
3.3 while语句............................................... 26
3.4 do-while循环.......................................... 28
3.5 for语句.................................................... 28
3.6 break语句............................................... 31
3.7 continue语句........................................... 32
3.8 switch语句.............................................. 32
3.9 本章小结................................................. 33
第4章 对象和类............................................. 34
4.1 什么是对象............................................. 34
4.2 Java类..................................................... 34
4.2.1 字段.............................................. 36
4.2.2 方法.............................................. 36
4.2.3 Main方法..................................... 36
4.2.4 构造方法...................................... 37
4.2.5 Varargs .......................................... 37
4.2.6 UML类图中的类成员................. 38
4.3 创建对象................................................. 38
4.4 null关键字.............................................. 38
4.5 对象的内存分配..................................... 39
4.6 Java包..................................................... 40
4.7 封装和访问控制..................................... 41
4.7.1 类访问控制修饰符....................... 41
4.7.2 类成员访问控制修饰符............... 42
4.8 this关键字............................................... 44
4.9 使用其他的类......................................... 45
4.10 final变量............................................... 46
4.11 静态成员............................................... 47
4.12 静态final变量...................................... 49
4.13 静态导入............................................... 50
4.14 变量作用域........................................... 50
4.15 方法重载............................................... 51
4.16 静态工厂方法....................................... 52
4.17 传值或传引用....................................... 53
4.18 加载、连接和初始化............................ 53
4.18.1 加载.............................................54
4.18.2 连接.............................................54
4.18.3 初始化.........................................54
4.19 对象创建初始化....................................55
4.20 垃圾收集................................................57
4.21 本章小结................................................57
第5章 核心类..................................................58
5.1 java.lang.Object........................................58
5.2 java.lang.String.........................................59
5.2.1 比较两个字符串...........................59
5.2.2 字符串字面值...............................60
5.2.3 转义特定字符...............................60
5.2.4 字符串上的switch........................61
5.2.5 String类的构造方法.....................61
5.2.6 String类的方法............................62
5.3 java.lang.StringBuffer和java.lang.StringBuilder.............................64
5.3.1 StringBuilder类的构造方法.........64
5.3.2 StringBuilder类的方法.................64
5.4 基本类型包装器......................................65
5.4.1 java.lang.Boolean ..........................66
5.4.2 java.lang.Character ........................66
5.5 java.lang.Class..........................................66
5.6 java.lang.System.......................................67
5.7 java.util.Scanner .......................................70
5.8 本章小结..................................................70
第6章 数组.......................................................71
6.1 概览..........................................................71
6.2 遍历数组..................................................72
6.3 java.util.Arrays类....................................73
6.4 修改数组的大小......................................73
6.5 查找一个数组..........................................74
6.6 给main方法传入一个字符串数组........75
6.7 多维数组..................................................76
6.8 本章小结..................................................76
第7章 继承.......................................................77
7.1 概览..........................................................77
7.1.1 extends关键字..............................77
7.1.2 is-a关系........................................78
7.2 可访问性..................................................79
7.3 方法覆盖..................................................80
7.4 调用超类的构造方法..............................81
7.5 调用超类的隐藏方法.............................. 82
7.6 类型强制转换......................................... 83
7.7 final类..................................................... 83
7.8 instanceof操作符.................................... 84
7.9 本章小结................................................. 84
第8章 错误处理............................................. 85
8.1 捕获异常................................................. 85
8.2 没有catch的try...................................... 86
8.3 捕获多个异常......................................... 87
8.4 try-with-resource语句............................. 87
8.5 java.lang.Exception类............................. 88
8.6 从方法中抛出一个异常.......................... 89
8.7 用户定义的异常..................................... 90
8.8 异常处理的注意事项.............................. 91
8.9 本章小结................................................. 91
第9章 操作数字............................................. 92
9.1 装箱和拆箱............................................. 92
9.2 数字解析................................................. 92
9.3 数字格式化............................................. 93
9.4 使用java.text.NumberFormat进行数字解析 ................................................. 94
9.5 java.lang.Math类.................................... 94
9.6 计算货币................................................. 95
9.7 生成随机数............................................. 95
9.8 本章小结................................................. 96
第10章 接口和抽象类................................. 97
10.1 接口的概念........................................... 97
10.2 技术上的接口....................................... 98
10.2.1 接口中的字段............................. 99
10.2.2 抽象方法 .................................... 99
10.2.3 扩展一个接口............................. 99
10.3 默认方法............................................. 100
10.4 静态方法............................................. 100
10.5 基类..................................................... 100
10.6 抽象类................................................. 102
10.7 本章小结............................................. 102
第11章 多态.................................................. 103
11.1 概览..................................................... 103
11.2 多态的应用......................................... 105
11.3 多态和反射......................................... 106
11.4 本章小结............................................. 107
第12章 枚举..................................................108
12.1 概览......................................................108
12.2 类中的enum........................................109
12.3 java.lang.Enum类................................109
12.4 遍历枚举值..........................................110
12.5 enum上的switch.................................110
12.6 枚举成员..............................................110
12.7 本章小结..............................................112
第13章 操作日期和时间...........................113
13.1 概述......................................................113
13.2 Instant类..............................................113
13.3 LocalDate .............................................114
13.4 Period ...................................................116
13.5 LocalDateTime .....................................117
13.6 时区......................................................118
13.7 ZonedDateTime ....................................119
13.8 Duration................................................120
13.9 格式化日期时间..................................123
13.10 解析一个日期时间............................124
13.11 使用旧的日期和时间API .................125
13.11.1 java.util.Date类.......................125
13.11.2 java.util.Calendar类................125
13.11.3 使用DateFormat解析和格式化.....................................126
13.12 本章小结............................................128
第14章 集合框架.........................................129
14.1 集合框架概览......................................129
14.2 Collection接口....................................130
14.3 List和ArrayList ..................................130
14.4 使用Iterator和for遍历一个集合......132
14.5 Set和HashSet......................................133
14.6 Queue和LinkedList ............................133
14.7 集合转换..............................................134
14.8 Map和HashMap .................................135
14.9 使得对象可比较和可排序..................136
14.9.1 使用java.lang.Comparable .......136
14.9.2 使用Comparator .......................138
14.10 本章小结............................................141
第15章 泛型..................................................142
15.1 没有泛型的日子..................................142
15.2 泛型类型..............................................142
15.3 使用不带类型参数的泛型类型.......... 145
15.4 使用?通配符........................................ 145
15.5 在方法中使用界限通配符.................. 147
15.6 泛型方法............................................. 148
15.7 编写泛型类型..................................... 148
15.8 本章小结............................................. 149
第16章 输入/输出....................................... 150
16.1 文件系统和路径................................. 150
16.2 文件和目录的处理和操作.................. 152
16.2.1 创建和删除文件和目录........... 152
16.2.2 获取一个目录对象................... 152
16.2.3 复制和移动文件....................... 153
16.2.4 从文件读取和写入到文件....... 153
16.3 输入/输出流........................................ 155
16.4 读二进制数据..................................... 155
16.5 写二进制数据..................................... 158
16.6 写文本(字符) ................................. 161
16.6.1 Writer ........................................ 161
16.6.2 OutputStreamWriter .................. 162
16.6.3 PrintWriter ................................ 163
16.7 读文本(字符) ................................. 164
16.7.1 Reader ....................................... 164
16.7.2 InputStreamReader.................... 165
16.7.3 BufferedReader ......................... 166
16.8 使用PrintStream记录日志................. 167
16.9 随机访问文件..................................... 168
16.10 对象序列化....................................... 171
16.11 本章小结........................................... 173
第17章 注解.................................................. 174
17.1 概览..................................................... 174
17.1.1 注解和注解类型....................... 174
17.1.2 注解语法.................................. 174
17.1.3 Annotation接口........................ 175
17.2 标准注解............................................. 175
17.2.1 Override .................................... 175
17.2.2 Deprecated ................................ 176
17.2.3 SuppressWarnings ..................... 177
17.3 常用注解............................................. 178
17.4 标准元-注解........................................ 178
17.4.1 Documented .............................. 178
17.4.2 Retention................................... 179
17.4.3 Retention................................... 179
17.4.4 Target ........................................ 179
17.5 定制注解类型......................................179
17.5.1 编写自己的定制注解类型.......180
17.5.2 使用定制注解类型...................180
17.5.3 使用反射来查询注解...............180
17.6 本章小结..............................................181
第18章 嵌套类和内部类...........................182
18.1 嵌套类概览..........................................182
18.2 静态嵌套类..........................................183
18.3 成员内部类..........................................184
18.4 局部内部类..........................................185
18.5 匿名内部类..........................................187
18.6 嵌套类和内部类的背后......................188
18.7 本章小结..............................................189
第19章 线程..................................................190
19.1 Java线程简介......................................190
19.2 创建一个线程......................................190
19.2.1 扩展线程...................................191
19.2.2 实现Runnable...........................192
19.3 使用多线程..........................................193
19.4 线程优先级..........................................194
19.5 停止线程..............................................196
19.6 同步......................................................198
19.6.1 线程干扰...................................198
19.6.2 原子操作...................................199
19.6.3 方法同步...................................199
19.6.4 块同步.......................................200
19.7 可见性..................................................200
19.8 线程协调..............................................202
19.9 使用定时器..........................................206
19.10 本章小结............................................208
第20章 并发工具.........................................209
20.1 原子变量..............................................209
20.2 Executor和ExecutorService ...............210
20.3 Callable和Future ................................213
20.4 锁..........................................................216
20.5 本章小结..............................................217
第21章 国际化..............................................218
21.1 本地化..................................................218
21.2 国际化应用程序..................................219
21.2.1 将文本性部分隔离到属性文件中.......................................220
21.2.2 使用ResourceBundle读取属性文件 .................................. 221
21.3 一个国际化的Swing应用程序.......... 221
21.4 本章小结............................................. 223
第22章 网络.................................................. 224
22.1 网络概览............................................. 224
22.2 超文本传输协议(HTTP)................ 224
22.2.1 HTTP请求............................... 225
22.2.2 HTTP响应............................... 225
22.3 java.net.URL........................................ 226
22.3.1 解析URL ................................. 227
22.3.2 读取Web资源......................... 227
22.4 java.net.URLConnection...................... 228
22.4.1 读Web资源............................. 229
22.4.2 写到一个Web服务器............. 230
22.5 java.net.Socket ..................................... 231
22.6 java.net.ServerSocket........................... 232
22.7 一个Web服务器应用程序................ 233
22.7.1 HttpServer类............................ 233
22.7.2 Request类................................. 236
22.7.3 Response类.............................. 238
22.7.4 运行应用程序........................... 239
22.8 本章小结............................................. 240
第23章 Android简介................................ 241
23.1 概览..................................................... 241
23.2 应用程序开发简介.............................. 241
23.3 Android版本....................................... 243
23.4 在线资源............................................. 244
23.5 应该使用哪个版本的Java.................. 244
第24章 初识Android................................ 245
24.1 下载和安装Android Studio ................ 245
24.1.1 在Windows系统上安装.......... 245
24.1.2 在Mac OS X系统上安装........ 249
24.1.3 在Linux系统上安装............... 250
24.2 创建应用程序..................................... 250
24.3 在模拟器上运行应用程序.................. 253
24.4 应用程序结构..................................... 254
24.4.1 Android清单............................ 255
24.4.2 apk文件.................................... 256
24.5 调试应用程序..................................... 256
24.5.1 日志.......................................... 256
24.5.2 设置断点.................................. 257
24.6 Android SDK Manager.........................258
24.7 创建一个Android虚拟设备...............258
24.8 在物理设备上运行应用程序..............261
24.9 在Android Studio中打开一个项目....261
24.10 使用Java 8.........................................262
24.11 删除支持的库....................................262
24.12 本章小结............................................263
第25章 活动..................................................264
25.1 活动的生命周期..................................264
25.2 ActivityDemo示例..............................265
25.3 修改应用程序图标..............................267
25.4 使用Android资源...............................268
25.5 启动另一个活动..................................268
25.6 活动相关的意图..................................271
25.7 本章小结..............................................273
第26章 UI组件............................................274
26.1 概览......................................................274
26.2 使用Android Studio UI工具..............274
26.3 使用基本组件......................................275
26.4 Toast .....................................................278
26.5 通知......................................................280
26.6 本章小结..............................................284
第27章 布局..................................................285
27.1 概览......................................................285
27.2 LinearLayout ........................................285
27.3 RelativeLayout .....................................287
27.4 FrameLayout ........................................290
27.5 TableLayout ..........................................291
27.6 GridLayout ...........................................292
27.7 通过编程来创建布局..........................293
27.8 本章小结..............................................294
第28章 监听器..............................................295
28.1 概览......................................................295
28.2 使用onClick属性...............................296
28.3 实现一个监听器..................................299
28.4 本章小结..............................................303
第29章 操作栏..............................................304
29.1 概览......................................................304
29.2 添加操作项......................................... 305
29.3 添加下拉式导航................................. 308
29.4 回退一步............................................. 311
29.5 本章小结............................................. 311
第30章 菜单.................................................. 312
30.1 概览..................................................... 312
30.2 菜单文件............................................. 312
30.3 选项菜单............................................. 313
30.4 上下文菜单......................................... 315
30.5 弹出式菜单......................................... 318
30.6 本章小结............................................. 320
第31章 ListView......................................... 321
31.1 概览..................................................... 321
31.2 创建一个ListAdapter ......................... 322
31.3 使用一个ListView.............................. 323
31.4 扩展ListActivity并编写一个定制的 适配器................................................. 325
31.5 样式化选取的项................................. 328
31.6 本章小结............................................. 330
第32章 GridView ....................................... 331
32.1 概览..................................................... 331
32.2 使用GridView..................................... 331
32.3 本章小结............................................. 335
第33章 样式和主题.................................... 336
33.1 概览..................................................... 336
33.2 使用样式............................................. 337
33.3 使用主题............................................. 339
33.4 本章小结............................................. 340
第34章 位图处理........................................ 341
34.1 概览..................................................... 341
34.2 位图处理............................................. 342
34.3 本章小结............................................. 346
第35章 图形和定制视图........................... 347
35.1 概览..................................................... 347
35.2 硬件加速............................................. 347
35.3 创建一个定制视图.............................. 348
35.4 绘制基本形状..................................... 348
35.5 绘制文本............................................. 349
35.6 透明度................................................. 349
35.7 Shader...................................................350
35.8 裁剪......................................................350
35.9 使用路径..............................................351
35.10 CanvasDemo应用程序......................352
35.11 本章小结............................................355
第36章 片段..................................................356
36.1 片段的生命周期..................................356
36.2 片段管理..............................................358
36.3 使用片段..............................................358
36.4 扩展ListFragment并使用FragmentManager ................................363
36.5 本章小结..............................................366
第37章 多面板布局....................................367
37.1 概览......................................................367
37.2 多面板示例..........................................369
37.2.1 布局和活动...............................371
37.2.2 片段类.......................................373
37.2.3 运行应用程序...........................377
37.3 本章小结..............................................377
第38章 动画..................................................378
38.1 概览......................................................378
38.2 属性动画..............................................378
38.2.1 Animator....................................378
38.2.2 ValueAnimator...........................378
38.2.3 ObjectAnimator .........................379
38.2.4 AnimatorSet...............................379
38.3 动画项目..............................................380
38.4 本章小结..............................................383
第39章 偏好..................................................384
39.1 SharedPreference..................................384
39.2 Preference API......................................384
39.3 使用Preference....................................385
39.4 本章小结..............................................389
第40章 操作文件.........................................390
40.1 概览......................................................390
40.1.1 内部存储...................................390
40.1.2 外部存储...................................391
40.2 创建一个Notes应用程序...................392
40.3 访问公共存储......................................397
40.4 本章小结..............................................400
第41章 操作数据库.................................... 401
41.1 概览..................................................... 401
41.2 Database API ....................................... 401
41.2.1 SQLiteOpenHelper类............... 401
41.2.2 SQLiteDatabase类................... 402
41.2.3 Cursor接口............................... 403
41.3 示例..................................................... 403
41.4 本章小结............................................. 410
第42章 获取图片........................................ 411
42.1 概览..................................................... 411
42.2 使用相机............................................. 412
42.3 Camera API.......................................... 415
42.3.1 管理相机.................................. 415
42.3.2 管理SurfaceHolder .................. 416
42.4 使用Camera API................................. 417
42.5 本章小结............................................. 421
第43章 制作视频........................................ 422
43.1 使用内建意图..................................... 422
43.2 MediaRecorder..................................... 426
43.3 使用MediaRecorder............................ 427
43.4 本章小结............................................. 430
第44章 声音录制........................................ 431
44.1 MediaRecorder类................................ 431
44.2 示例..................................................... 431
44.3 本章小结............................................. 435
第45章 处理Handler................................ 436
45.1 概览..................................................... 436
45.2 示例..................................................... 436
45.3 本章小结............................................. 439
第46章 异步工具........................................ 440
46.1 概览..................................................... 440
46.2 示例..................................................... 440
46.3 本章小结............................................. 444
第47章 服务.................................................. 445
47.1 概览..................................................... 445
47.2 服务API.............................................. 445
47.3 声明服务............................................. 446
47.4 服务示例............................................. 446
47.5 本章小结..............................................451
第48章 广播接收器....................................452
48.1 概览......................................................452
48.2 基于时钟的广播接收器......................452
48.3 取消通知..............................................454
48.4 本章小结..............................................457
第49章 闹钟服务.........................................458
49.1 概览......................................................458
49.2 示例......................................................459
49.3 本章小结..............................................463
第50章 内容提供者....................................464
50.1 概览......................................................464
50.2 ContentProvider类...............................465
50.2.1 query方法.................................465
50.2.2 insert方法.................................465
50.2.3 update方法...............................465
50.2.4 delete方法.................................466
50.3 创建一个内容提供者..........................466
50.4 消费内容提供者..................................475
50.5 本章小结..............................................476
附录A javac ....................................................477
A.1 选项.......................................................477
A.1.1 标准选项....................................477
A.1.2 非标准选项................................479
A.1.3 -J选项........................................480
A.2 命令行参数文件...................................480
附录B java ......................................................481
B.1 选项.......................................................481
B.1.1 标准选项.................................... 481
B.1.2 非标准选项................................ 483
附录C jar ........................................................ 485
C.1 语法....................................................... 485
C.2 选项....................................................... 486
C.3 示例....................................................... 487
C.3.1 创建............................................ 487
C.3.2 更新............................................ 487
C.3.3 列出............................................ 487
C.3.4 提取............................................ 487
C.3.5 索引............................................ 487
C.4 设置应用程序入口点........................... 488
附录D NetBeans .......................................... 489
D.1 下载和安装.......................................... 489
D.2 创建一个项目....................................... 489
D.3 创建一个类.......................................... 491
D.4 运行一个Java类................................. 491
D.5 添加库.................................................. 491
D.6 调试代码.............................................. 492
附录E Eclipse ............................................... 493
E.1 下载和安装........................................... 493
E.2 添加一个JRE ....................................... 494
E.3 创建一个Java项目.............................. 495
E.4 创建一个类........................................... 496
E.5 运行一个Java类.................................. 497
E.6 添加库................................................... 497
E.7 调试代码............................................... 497
E.8 有用的快捷方式................................... 498