内容简介
《Java技术手册第6版》是《Java技术手册》的升级版,涵盖了全新的Java7和Java8。第一部分介绍了Java编程语言和Java平台,主要包括Java环境、Java基本语法、Java面向对象编程、Java类型系统、面向对象的Java设计、用Java实现内存管理和并发编程的方法。第2部分通过大量的例子说明了如何在Java环境中完成实际的编程任务主要内容包括编程和文档约定,使用Java集合和数组,处理常见的数据格式,处理文件和I/O,类加载、和反射方法句柄Nashorn以及平台工具和配置。
目录
- 序xv
- 前言xvi
- 第一部分Java介绍
- 第1章Java环境介绍2
- 1.1Java语言、JVM和生态系统2
- 1.1.1Java语言是什么3
- 1.1.2JVM是什么4
- 1.1.3Java生态系统是什么5
- 1.2Java和JVM简史6
- 1.3Java程序的生命周期7
- 1.4Java的安全性9
- 1.5Java和其他语言比较9
- 1.5.1Java和C语言比较9
- 1.5.2Java和C++比较10
- 1.5.3Java和PHP比较10
- 1.5.4Java和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.1Java程序概览14
- 2.2词法结构14
- 2.2.1Unicode字符集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.10instanceof操作符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.6if/else语句41
- 2.5.7switch语句43
- 2.5.8while语句45
- 2.5.9do语句45
- 2.5.10for语句46
- 2.5.11遍历语句47
- 2.5.12break语句48
- 2.5.13continue语句49
- 2.5.14return语句49
- 2.5.15synchronized语句50
- 2.5.16throw语句50
- 2.5.17try/catch/finally语句51
- 2.5.18处理资源的try语句53
- 2.5.19assert语句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.5lambda表达式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.11Java文件的结构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.6this引用的工作方式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.2Java泛型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.5lambda表达式148
- 4.5.1转换lambda表达式150
- 4.5.2方法引用150
- 4.5.3函数式编程151
- 4.6小结152
- 第5章Java的面向对象设计154
- 5.1Java的值154
- 5.2java.lang.Object类的重要方法155
- 5.2.1toString()方法157
- 5.2.2equals()方法157
- 5.2.3hashCode()方法158
- 5.2.4Comparable::compareTo()方法158
- 5.2.5clone()方法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.5Java编程的安全性170
- 第6章Java实现内存管理和并发编程的方式172
- 6.1Java内存管理的基本概念172
- 6.1.1Java中的内存泄露173
- 6.1.2标记清除算法简介173
- 6.1.3基本标记清除算法174
- 6.2JVM优化垃圾回收的方式175
- 6.3HotSpot堆178
- 6.3.1回收老年代178
- 6.3.2其他回收程序179
- 6.4终结机制180
- 6.5Java对并发编程的支持181
- 6.5.1线程的生命周期182
- 6.5.2可见性和可变性184
- 6.5.3互斥和状态保护185
- 6.5.4volatile关键字187
- 6.5.5Thread类中有用的方法188
- 6.6使用线程190
- 6.7小结192
- 第二部分使用Java平台
- 第7章编程和文档约定194
- 7.1命名和大小写约定194
- 7.2实用的命名方式196
- 7.3Java文档注释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介绍集合API208
- 8.1.1Collection接口209
- 8.1.2Set接口211
- 8.1.3List接口213
- 8.1.4Map接口217
- 8.1.5Queue接口和BlockingQueue接口220
- 8.1.6实用方法222
- 8.1.7数组和辅助方法224
- 8.2在Java集合框架中使用lambda表达式225
- 8.2.1函数式方式226
- 8.2.2流API229
- 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.1Java表示整数类型的方式240
- 9.2.2Java中的浮点数241
- 9.2.3Java的数学函数标准库243
- 9.3在Java8中处理日期和时间245
- 9.3.1介绍Java8的日期和时间API245
- 9.3.2查询248
- 9.3.3调节器249
- 9.3.4过时的日期和时间API250
- 9.4小结251
- 第10章处理文件和I/O252
- 10.1Java处理I/O的经典方式252
- 10.1.1文件253
- 10.1.2流254
- 10.1.3Reader和Writer类255
- 10.1.4再次介绍TWR256
- 10.1.5I/O经典处理方式的问题257
- 10.2Java处理I/O的现代方式257
- 10.2.1文件258
- 10.2.2路径259
- 10.3NIO中的通道和缓冲区261
- 10.3.1ByteBuffer对象261
- 10.3.2映射字节缓冲区263
- 10.4异步I/O263
- 10.4.1基于Future接口的方式264
- 10.4.2基于回调的方式264
- 10.4.3监视服务和目录搜索265
- 10.5网络266
- 10.5.1HTTP266
- 10.5.2TCP268
- 10.5.3IP270
- 第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.1MethodType对象285
- 11.7.2方法查找286
- 11.7.3调用方法句柄287
- 第12章Nashorn289
- 12.1介绍Nashorn289
- 12.1.1在JVM中运行Java之外的语言289
- 12.1.2目的290
- 12.2在Nashorn中执行JavaScript代码290
- 12.2.1在命令行中运行291
- 12.2.2使用Nashornshell291
- 12.2.3在jjs中编写脚本293
- 12.3Nashorn和javax.script包297
- 12.4Nashorn的高级用法299
- 12.4.1在Nashorn中调用Java代码299
- 12.4.2Nashorn对JavaScript语言所做的扩展302
- 12.4.3实现细节303
- 12.5小结304
- 第13章平台工具和配置306
- 13.1命令行工具306
- 13.1.1javac307
- 13.1.2java309
- 13.1.3jar310
- 13.1.4javadoc312
- 13.1.5jdeps313
- 13.1.6jps314
- 13.1.7jstat315
- 13.1.8jstatd315
- 13.1.9jinfo316
- 13.1.10jstack317
- 13.1.11jmap317
- 13.1.12javap318
- 13.2VisualVM318
- 13.3Java8配置324
- 13.3.1目的324
- 13.3.2紧凑配置325
- 13.4小结328
- 作者简介329
- 封面介绍329
就像本书背面所描述的那样,这是带着读者进入java程序设计殿堂的一本好书。整本书言简意赅,不像编程思想那些大部头那样让人望而止步,能让你在短时间内对java平台有个大概的了解。
不错的java入门书之一。介绍了java基本语法,java 7以及8的主要API,以及一些入门使用。作为查漏补缺的技术回顾书籍也是不错的选择。