《Java技术手册(第6版)》旨在帮助有经验的Java程序员充分使用Java 7和Java 8的功能,但也可供Java开发新手学习。书中提供了大量示例,演示了如何充分利用现代API和开发过程中的**实践。这一版进行了全面更新。第1部分快速准确地介绍了Java编程语言和Java平台。第2部分讨论了核心概念和API,展示了如何在Java环境中解决实际的编程任务。
通过学习本书,你将能够:
掌握全新的语言细节,包括Java 8的变化
使用基本的Java句法学习面向对象编程
研究泛型、枚举、注解和lambda表达式
理解面向对象设计中使用的基本技术
学习并发和内存管理,以及二者间错综复杂的关系
使用Java集合,处理常用的数据格式
深入研究Java全新的I/O API,包括异步通道
使用Nashorn在Java虚拟机中执行JavaScript代码
熟悉OpenJDK中的开发工具
《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的高级前端软件工程师,著有《JavaScriptquanwei指南》《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
这是一本 Java 案头参考书,适合放在键盘旁,编程时随时翻阅。本书第一部分快速准确地介绍 Java 编程语言和 Java 平台的核心运行时概念。第二部分通过重要的核心 API 示例来解释关键概念。本书虽然涵盖 Java 8,但考虑到有些行业还没有开始使用,所以只要有需要,我们就会特别注明 Java 8(部分是 Java 7)引入的功能。本书全面使用 Java 8 句法,以前可能使用匿名嵌套类的地方会换用 lambda 表达式。
第6版的变化
本书第 5 版涵盖 Java 5,而这一版涵盖 Java 8。本书第 5 版大约在十年前出版,在那之后,Java 语言和程序员的工作环境都发生了重大变化。因此,这一版内容变化很大。其中一个重要的变化是,不再像前几版那样对平台的核心 API 进行详尽的介绍。
其中一个原因是,在纸质书中印出数量巨大的核心 API 是不切实际的。而一个更有说服力的原因是,随时可连的快速互联网不断普及,几乎所有 Java 程序员工作时都会连接互联网。详细的 API 文档参考更适合放在网上,而不是印在书中。
相应地,这一版删掉了占据第 5 版三分之二篇幅的 API 参考,剩下的内容才符合“概要型”手册的要求。当代 Java 开发者不仅需要了解句法和 API,当 Java 环境成熟后,并发、面向对象设计、内存管理和 Java 类型系统这些话题都变得重要了,主流开发者都要了解。
我们在这一版中试图反映出 Java 生态系统这些年的变化,因此很大程度上摒弃了前几版的写作方式。具体而言,我们基本不会详细说明某个 Java 特性是在哪个版本中引入的,因为大多数 Java 开发者只关心最新版。
对于像我这样,在Java领域已经有一定经验,但又希望不断精进、紧跟技术潮流的开发者来说,《Java技术手册(第6版)》这本书无疑是一个绝佳的选择。我一直关注着Java技术的发展,也深知掌握最新的技术和最佳实践的重要性。这本手册的更新版本,让我看到了其与时俱进的态度。我尤其看重其中关于Java 8+新特性、函数式编程、以及微服务架构相关的章节。这些都是当前Java开发领域的热点和趋势,理解透彻这些内容,对于保持自己在技术前沿至关重要。我希望通过阅读这本书,能够系统地梳理和学习这些新知识,并且能够将它们应用到我的日常开发工作中,提升开发效率和代码质量。这本书的深度和广度,让我有信心能够不断突破自己的技术瓶颈,成为一名更优秀的Java工程师。
评分哇,终于收到了这本《Java技术手册(第6版)》,简直是程序员的福音!我之前就一直听说它的大名,但一直没机会入手。这次正好赶上更新,毫不犹豫地买了。拿到书的那一刻,就感觉沉甸甸的,里面的内容肯定极其扎实。我翻了翻目录,光是看标题就觉得信息量巨大,涵盖了从基础到进阶的方方面面,简直就是一个Java宝典。我一直觉得,学编程最怕的就是那些零散的、不成体系的知识点,看来看去脑子里一团糟,但有了这本手册,感觉就像找到了指引明灯。我之前在工作中遇到的一些瓶颈,比如并发处理、性能优化这些,总觉得抓不住要领,这次准备好好啃一下这本书,希望能有豁然开朗的感觉。而且,它的排版我也很喜欢,字体大小、行距都恰到好处,看着不累。迫不及待想开始我的阅读之旅了,希望它能帮我把Java功力再提升一个台阶!
评分我是一名即将踏入IT行业的大三学生,Java是我学习的主力语言。在学校里,老师教授的知识虽然重要,但往往停留在理论层面,很多实际应用中的细节和最佳实践,我们很难了解到。因此,我一直渴望有一本能够系统地、深入地讲解Java技术的书籍。《Java技术手册(第6版)》这本书,我听同学推荐过好几次了,都说它是Java学习者必备的“圣经”。这次终于下定决心买了,拿到手后,迫不及待地翻看了它的目录,发现里面包含了我当前学习阶段最需要的内容,从基本语法到面向对象的设计原则,再到一些常用的API和工具,都讲得很细致。尤其让我感兴趣的是关于数据结构和算法的章节,这部分内容对我提高编程能力至关重要。我希望通过阅读这本书,能够建立起扎实的Java基础,为我未来的学习和工作打下坚实的基础。我已经开始计划每天抽出一定时间来阅读,希望能从中汲取宝贵的知识。
评分这本《Java技术手册(第6版)》对我来说,简直就是一本“速成秘籍”。我最近接手了一个非常重要的项目,时间紧任务重,而我正好又需要快速地熟悉项目中的一些Java技术栈。市面上有很多Java的书,但大多要么过于基础,要么过于偏门,很难找到一本能够快速帮我掌握核心技术、并且又足够权威的书籍。我仔细研究了《Java技术手册(第6版)》的介绍,发现它内容全面,覆盖了Java开发的各个方面,而且是最新版的,这让我非常放心。我特别希望能够快速找到关于Spring框架、数据库连接池以及性能调优等章节,通过对照项目中的实际代码,能够快速理解并上手。我知道这本书的理论知识非常扎实,如果能结合实际项目中的问题来阅读,效果会事半功倍。我相信,有了这本书的帮助,我一定能顺利完成这次挑战。
评分说实话,我是一名已经摸爬滚打Java好几年的开发者了,自认为对Java的理解已经比较深刻了。但是,最近在接触一些更底层的框架和一些复杂的分布式系统时,总感觉有些概念性的东西没能完全吃透,像是隔靴搔痒。所以,我抱着试试看的心态入手了《Java技术手册(第6版)》。第一眼看到这本书,确实是被它的厚度震慑住了,但这也从侧面说明了其内容的丰富程度。我主要关注的是其中关于JVM内部机制、垃圾回收算法以及内存管理的部分。这些内容往往是决定程序性能的关键,也是很多新手容易忽视的细节。我希望这本书能用清晰的逻辑和详实的案例,把这些复杂的概念一一剖析清楚,让我能够更加游刃有余地处理那些对性能要求极高的场景。我已经迫不及待想要深入研究那些关于类加载、字节码生成、JIT编译等章节了,相信这些内容能够填补我知识体系中的一些空白,让我在解决疑难杂症时更加得心应手。
评分当手册使用,没事翻翻,正版好贵
评分内容布局有点乱,总体还不错!
评分还没看呢
评分不好,全是梗概
评分京东是第一选择,多快好省!
评分还好,当做入门的书还行,讲的比较粗浅
评分挺不错的书。。买了电子版又来买纸质版
评分书有点脏,内容还没看,oreily一直都挺好的
评分还行
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有