《Java技术手册 第6版》PDF下载

  • 购买积分:12 如何计算积分?
  • 作  者:(英)埃文斯,(美)弗拉纳根著
  • 出 版 社:北京:人民邮电出版社
  • 出版年份:2015
  • ISBN:9787115406095
  • 页数:329 页
图书介绍:本书在上一版的基础上重写了全部示例,从而充分利用现代Java API的强大功能,展示开发最佳实践。本书主要内容包括:学习如何使用Lambda表达式使程序更短,更容易编写和理解;分析Nashorn,它是Java虚拟机上的全新JavaScript实现;使用新的I/O API使代码更清晰、更简短、更安全;理解Java的并发模型,学习如何轻松编写多线程代码。

第一部分 Java介绍 2

第1章 Java环境介绍 2

1.1 Java语言、JVM和生态系统 2

1.1.1 Java语言是什么 3

1.1.2 JVM是什么 4

1.1.3 Java生态系统是什么 5

1.2 Java和JVM简史 6

1.3 Java程序的生命周期 7

1.4 Java的安全性 9

1.5 Java和其他语言比较 9

1.5.1 Java和C语言比较 9

1.5.2 Java和C++比较 10

1.5.3 Java和PHP比较 10

1.5.4 Java和JavaScript比较 10

1.6 回应对Java的些批评 10

1.6.1 过度复杂 10

1.6.2 变化慢 11

1.6.3 性能问题 12

1.6.4 安全 12

1.6.5 太注重企业 12

第2章 Java基本句法 13

2.1 Java程序概览 14

2.2 词法结构 14

2.2.1 Unicode字符集 14

2.2.2 区分大小写与空白 14

2.2.3 注释 15

2.2.4 保留字 16

2.2.5 标识符 16

2.2.6 字面量 17

2.2.7 标点符号 17

2.3 基本数据类型 17

2.3.1 布尔类型 18

2.3.2 字符类型 18

2.3.3 整数类型 20

2.3.4 浮点数类型 21

2.3.5 基本类型之间的转换 22

2.4 表达式和运算符 24

2.4.1 运算符概述 25

2.4.2 算术运算符 28

2.4.3 字符串连接运算符 30

2.4.4 递增和递减运算符 30

2.4.5 比较运算符 31

2.4.6 逻辑运算符 32

2.4.7 位运算符和位移运算符 33

2.4.8 赋值运算符 35

2.4.9 条件运算符 36

2.4.10 instanceof操作符 36

2.4.11 特殊运算符 37

2.5 语句 38

2.5.1 表达式语句 39

2.5.2 复合语句 39

2.5.3 空语句 39

2.5.4 标注语句 40

2.5.5 局部变量声明语句 40

2.5.6 if/else语句 41

2.5.7 switch语句 43

2.5.8 while 语句 45

2.5.9 do 语句 45

2.5.10 for 语句 46

2.5.11 遍历语句 47

2.5.12 break 语句 48

2.5.13 continue语句 49

2.5.14 return语句 49

2.5.15 synchronized语句 50

2.5.16 throw语句 50

2.5.17 try/catch/finally语句 51

2.5.18 处理资源的try语句 53

2.5.19 assert语句 54

2.6 方法 55

2.6.1 定义方法 55

2.6.2 方法修饰符 57

2.6.3 已检异常和未检异常 59

2.6.4 变长参数列表 60

2.7 介绍类和对象 61

2.7.1 定义类 62

2.7.2 创建对象 62

2.7.3 使用对象 63

2.7.4 对象字面量 63

2.7.5 lambda表达式 64

2.8 数组 65

2.8.1 数组的类型 65

2.8.2 创建和初始化数组 67

2.8.3 使用数组 68

2.8.4 多维数组 70

2.9 引用类型 72

2.9.1 引用类型与基本类型比较 72

2.9.2 处理对象和引用副本 73

2.9.3 比较对象 74

2.9.4 装包和拆包转换 75

2.10 包和Java命名空间 76

2.10.1 声明包 76

2.10.2 全局唯一的包名 77

2.10.3 导入类型 77

2.10.4 导入静态成员 79

2.11 Java文件的结构 80

2.12 定义并运行Java程序 81

2.13 小结 82

第3章 Java面向对象编程 83

3.1 类简介 83

3.1.1 面向对象的基本概念 83

3.1.2 其他引用类型 84

3.1.3 定义类的句法 85

3.2 字段和方法 85

3.2.1 声明字段的句法 86

3.2.2 类字段 87

3.2.3 类方法 88

3.2.4 实例字段 89

3.2.5 实例方法 89

3.2.6 this引用的工作方式 90

3.3 创建和初始化对象 91

3.3.1 定义构造方法 91

3.3.2 定义多个构造方法 92

3.3.3 在一个构造方法中调用另一个构造方法 92

3.3.4 字段的默认值和初始化程序 93

3.4 子类和继承 95

3.4.1 扩展类 95

3.4.2 超类、对象和类层次结构 97

3.4.3 子类的构造方法 98

3.4.4 构造方法链和默认构造方法 98

3.4.5 遮盖超类的字段 100

3.4.6 覆盖超类的方法 101

3.5 数据隐藏和封装 104

3.5.1 访问控制 105

3.5.2 数据访问器方法 110

3.6 抽象类和方法 111

3.7 修饰符总结 115

第4章 Java类型系统 117

4.1 接口 118

4.1.1 定义接口 118

4.1.2 扩展接口 119

4.1.3 实现接口 119

4.1.4 实现多个接口 121

4.1.5 默认方法 121

4.1.6 标记接口 123

4.2 Java泛型 123

4.2.1 介绍泛型 124

4.2.2 泛型和类型参数 125

4.2.3 菱形句法 126

4.2.4 类型擦除 126

4.2.5 通配符 127

4.2.6 编译时和运行时类型 131

4.3 枚举和注解 131

4.3.1 枚举 131

4.3.2 注解 133

4.3.3 自定义注解 134

4.3.4 类型注解 135

4.4 嵌套类型 135

4.4.1 静态成员类型 136

4.4.2 非静态成员类 138

4.4.3 局部类 141

4.4.4 词法作用域和局部变量 144

4.4.5 匿名类 145

4.4.6 嵌套类型的运作方式 147

4.5 lambda表达式 148

4.5.1 转换lambda表达式 150

4.5.2 方法引用 150

4.5.3 函数式编程 151

4.6 小结 152

第5章 Java的面向对象设计 154

5.1 Java的值 154

5.2 java.lang.object类的重要方法 155

5.2.1 toString()方法 157

5.2.2 equals()方法 157

5.2.3 hashCode()方法 158

5.2.4 Comparable::compareTo()方法 158

5.2.5 clone()方法 159

5.3 面向对象设计要略 159

5.3.1 常量 159

5.3.2 用接口还是抽象类 160

5.3.3 实例方法还是类方法 161

5.3.4 合成还是继承 163

5.3.5 字段继承和访问器 165

5.3.6 单例 167

5.4 异常和异常处理 168

5.5 Java编程的安全性 170

第6章 Java实现内存管理和并发编程的方式 172

6.1 Java内存管理的基本概念 172

6.1.1 Java中的内存泄露 173

6 1.2 标记清除算法简介 173

6.1.3 基本标记清除算法 174

6.2 JVM优化垃圾回收的方式 175

6.3 HotSpot堆 178

6.3.1 回收老年代 178

6.3.2 其他回收程序 179

6.4 终结机制 180

6.5 Java对并发编程的支持 181

6.5.1 线程的生命周期 182

6.5.2 可见性和可变性 184

6.5.3 互斥和状态保护 185

6.5.4 volatile关键字 187

6.5.5 Thread类中有用的方法 188

6.6 使用线程 190

6.7 小结 192

第二部分 使用Java平台 194

第7章 编程和文档约定 194

7.1 命名和大小写约定 194

7.2 实用的命名方式 196

7.3 Java文档注释 197

7.3.1 文档注释的结构 198

7.3.2 文档注释标签 198

7.3.3 行内文档注释标签 201

7.3.4 文档注释中的交叉引用 203

7.3.5 包的文档注释 204

7.4 可移植程序的约定 205

第8章 使用Java集合 208

8.1 介绍集合API 208

8.1.1 Collection接口 209

8.1 2 Set接口 211

8.1.3 List接口 213

8.1.4 Map接口 217

8.1.5 Queue接口和BlockingQueue接口 220

8.1.6 实用方法 222

8.1.7 数组和辅助方法 224

8.2 在Java集合框架中使用lambda表达式 225

8.2.1 函数式方式 226

8.2.2 流API 229

8.3 小结 232

第9章 处理常见的数据格式 233

9.1 文本 233

9.1.1 字符串的特殊句法 233

9.1.2 字符串的不可变性 235

9.1.3 正则表达式 237

9.2 数字和数学运算 240

9.2.1 Java表示整数类型的方式 240

9.2.2 Java中的浮点数 241

9.2.3 Java的数学函数标准库 243

9.3 在Java 8 中处理日期和时间 245

9.3.1 介绍 Java 8的日期和时间API 245

9.3.2 查询 248

9.3.3 调节器 249

9.3.4 过时的日期和时间API 250

9.4 小结 251

第10章 处理文件和I/O 252

10.1 Java处理I/O的经典方式 252

10.1.1 文件 253

10.1.2 流 254

10.1.3 Reader 和Writer类 255

10.1.4 再次介绍TWR 256

10.1.5 I/O经典处理方式的问题 257

10.2 Java处理I/O的现代方式 257

10.2.1 文件 258

10.2.2 路径 259

10.3 NIO中的通道和缓冲区 261

10.3.1 ByteBuffer对象 261

10.3.2 映射字节缓冲区 263

10.4 异步I/O 263

10.4.1 基于Future接口的方式 264

10.4.2 基于回调的方式 264

10.4.3 监视服务和目录搜索 265

10.5 网络 266

10.5.1 HTTP 266

10.5.2 TCP 268

10.5.3 IP 270

第11章 类加载、反射和方法句柄 271

11.1 类文件、类对象和元数据 271

11.1.1 类对象示例 271

11.1.2 类对象和元数据 272

11.2 类加载的各个阶段 273

11.2.1 加载 273

11.2.2 验证 274

11.2.3 准备和解析 274

11.2.4 初始化 275

11.3 安全的编程和类加载 276

11.4 应用类加载知识 277

11.5 反射 280

11.5.1 什么时候使用反射 280

11.5.2 如何使用反射 280

11.6 动态代理 284

11.7 方法句柄 285

11.7.1 MethodType 对象 285

11.7.2 方法查找 286

11.7.3 调用方法句柄 287

第12章 Nashorn 289

12.1 介绍Nashorn 289

12.1.1 在JVM中运行Java之外的语言 289

12.1.2 目的 290

12.2 在 Nashorn中执行JavaScript代码 290

12.2.1 在命令行中运行 291

12.2.2 使用Nashorn shell 291

12.2.3 在jjs中编写脚本 293

12.3 Nashorn和javax.script包 297

12.4 Nashorn的高级用法 299

12.4.1 在Nashorn中调用.Java 代码 299

12.4.2 Nashorn对JavaScript 语言所做的扩展 302

12.4.3 实现细节 303

12.5 小结 304

第13章 平台工具和配置 306

13.1 命令行工具 306

13.1.1 javac 307

13.1.2 java 309

13.1.3 jar 310

13.1.4 javadoc 312

13.1.5 jdeps 313

13.1.6 jps 314

13.1.7 jstat 315

13.1.8 jstatd 315

13.1.9 jinfo 316

13.1.10 jstack 317

13.1.11 jmap 317

13.1.12 javap 318

13.2 VisualVM 318

13.3 Java 8配置 324

13.3.1 目的 324

13.3.2 紧凑配置 325

13.4 小结 328

作者简介 329

封面介绍 329