Java技术手册 第6版

资源名称:Java技术手册 第6版

内容简介:

《Java技术手册 第6版》为《Java 技术手册》的升级版,涵盖全新的Java 7 和Java 8。第1部分介绍Java 编程语言和Java 平台,主要内容有Java 环境、Java 基本句法、Java 面向对象编程、Java 类型系统、Java的面向对象设计、Java 实现内存管理和并发编程的方式。第2部分通过大量示例来阐述如何在Java 环境中完成实际的编程任务,主要内容有编程和文档约定,使用Java 集合和数组,处理常见的数据格式,处理文件和I/O,类加载、反射和方法句柄,Nashorn,以及平台工具和配置。

作者简介:

Benjamin J. Evans是jClarity公司的联合创始人,伦敦Java用户组的组织者,JCP执行委员会委员。Java Champion和JavaOne Rockstar荣誉得主。与人合著有《Java程序员修炼之道》。他经常就Java平台、性能、并发和相关主题 发表公开演讲。

David Flanagan是Mozilla的高级前端软件工程师,著有《Javascript权威指南》《Ruby编程语言》等。博客地址是:davidflanagan.com。

资源目录:

序 xv

前言 xvi

第一部分 Java 介绍

第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 平台

第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

资源截图:

1.png


智研优享资源 » Java技术手册 第6版

发表回复

提供最优质的资源集合

立即查看 了解详情