《JAVA和ANDROID开发学习指南 第2版》PDF下载

  • 购买积分:15 如何计算积分?
  • 作  者:(加)BUDI KURNIAWAN著;李强译
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2016
  • ISBN:9787115417534
  • 页数:498 页
图书介绍:本书着重讲解基于Android系统的Java编程。本书包括两个部分,第一部分重在讲解JAVA编程,第二部分意在讲解如何构建高效的Android应用。书中所采用的Java是Java8,属于Java的最新版本,而Android开发采用的是Google官方的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 下载JavaAPI文档 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 字符串上的swithh 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.utilArrays类 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.1 ang.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.1 ang.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.1 ang.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 PreferenceAPI 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 DatabaseAPI 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