写给大忙人看的Java核心技术

书名:写给大忙人看的Java核心技术
作者:【美】CayS.Horstmann(凯.S.霍斯特曼)著
译者:杨谦等译
ISBN:9787121278372
出版社:电子工业出版社
出版时间:2016-1
格式:epub/mobi/azw3/pdf
页数:484
豆瓣评分: 7.2

书籍简介:

《写给大忙人看的Java核心技术》为经典著作Core Java作者Cay S. Horstmann的全新力作,以关键的核心技术为着眼点,以全局高度提炼语言精髓,以高浓度、高含金量的方式对Java 8新特性进行细致讲解,将其沉浸于Java多年的真知灼见蕴藏于书中,既扎实覆盖Java编程的基础知识,更独具匠心地从Java 8极其重要的新特性之一lambda表达式发端,带领读者一路探索和实践Java 8的诸多新特性,诸如针对数据处理的Stream、并发编程中的增强部分、全新的时间/日期API,以及脚本语言在Java中的使用。 “For the Impatient”系列风格鲜明,除悉数出自大师之手外,更以文笔轻松、易读易懂、富含生动且可用于实践的示例程序(下载源代码后可直接运行)见长。这种亲身实践的讲授模式,非常便于各阶层读者加深对技术的理解和掌握,初学者可用来参考入门,有开发经验者也可用来巩固编程核心知识,或与时俱进地把握技术发展现状与未来趋势。 《写给大忙人看的Java核心技术》适合有一定Java开发经验的工程师或者架构师阅读,也可以作为Java新特性的参考手册。

作者简介:

Cay S. Horstmann是名著Core Java?, Volumes I and II的主要作者,同时也是《写给大忙人的Java SE 8》(Java SE 8 for the Really Impatient)与《快学Scala》(Scala for the impatient)两本书的作者,。他还编写了一系列针对专业编程人员和计算机专业学生的书籍。他是圣荷西州立大学计算机科学专业的一名教授,也是一位Java拥护者。

书友短评:

@ iambowen 包含了我想了解的一些java/java8的基础知识,感觉翻译和代码都有些问题,不过还好我是粗略的看,没有花太长时间。 @ Sonia 大概了解了一下 @ Monaco 翻译垃圾!搜了下豆瓣,这个杨谦翻译的几本,都有人提出翻译问题。建议电子工业出版社不要再用这个人翻译了。 @ zzy 垃圾翻译误人子弟真想一刀把你捅死,暴殄天物 @ zhengyang 比较基础 @ 不落一叶 重温Java基础 @ Chitose 别买。 @ 牛晋 还行 @ westa 看这本书入门了Java @ Monaco 翻译垃圾!搜了下豆瓣,这个杨谦翻译的几本,都有人提出翻译问题。建议电子工业出版社不要再用这个人翻译了。

第1章 基本的编程结构………………………………………………………………………………… 1
1.1 第一个程序 ………………………………………………………………………………….. 2
1.1.1 “Hello,World”程序解析 ………………………………………………………………….. 2
1.1.2 编译与运行Java程序 …………………………………………………………………………….. 3
1.1.3 方法调用 ……………………………………………………………………………………………… 5
1.2 基本类型 ……………………………………………………………………………………. 7
1.2.1 整型 …………………………………………………………………………………………………….. 7
1.2.2 浮点类型 ……………………………………………………………………………………………… 8
1.2.3 char型 ………………………………………………………………………………………………….. 9
1.2.4 布尔型 ……………………………………………………………………………………………….. 10
1.3 变量 ……………………………………………………………………………… 10
1.3.1 变量的声明 ………………………………………………………………………………………… 10
1.3.2 名称 …………………………………………………………………………………………………… 10
1.3.3 初始化 …………………………………………………………………………………………………11
1.3.4 常量 …………………………………………………………………………………………………….11
1.4 算术操作 ………………………………………………………………………………………. 13
1.4.1 赋值 …………………………………………………………………………………………………… 13
1.4.2 基本运算 ……………………………………………………………………………………………. 14
1.4.3 数学方法 ……………………………………………………………………………………………. 15
1.4.4 数字类型转换 …………………………………………………………………………………….. 16
1.4.5 关系和逻辑操作符 ……………………………………………………………………………… 17
1.4.6 大数 …………………………………………………………………………………………………… 19
1.5 字符串 ……………………………………………………………………………………. 19
1.5.1 字符串连接 ………………………………………………………………………………………… 20
1.5.2 子字符串 ……………………………………………………………………………………………. 21
1.5.3 字符串比较 ………………………………………………………………………………………… 21
1.5.4 数字与字符串转换 ……………………………………………………………………………… 23
1.5.5 String类API ………………………………………………………………………………………… 24
1.5.6 编码点(code point)和编码单元(code unit) ……………………………………. 25
1.6 输入与输出 ……………………………………………………………………………… 26
1.6.1 读取输入 ……………………………………………………………………………………………. 27
1.6.2 格式化输出 ………………………………………………………………………………………… 28
1.7 控制流 …………………………………………………………………………………………….. 30
1.7.1 分支 …………………………………………………………………………………………………… 30
1.7.2 循环 …………………………………………………………………………………………………… 32
1.7.3 跳出循环与继续循环 ………………………………………………………………………….. 34
1.7.4 局部变量作用域 …………………………………………………………………………………. 36
1.8 数组和数组列表 ……………………………………………………………………… 38
1.8.1 使用数组 ……………………………………………………………………………………………. 38
1.8.2 构造数组 ……………………………………………………………………………………………. 39
1.8.3 数组列表 ……………………………………………………………………………………………. 39
1.8.4 基本类型包装类 …………………………………………………………………………………. 41
1.8.5 增强的for循环 ……………………………………………………………………………………. 41
1.8.6 数组与数组列表的复制 ………………………………………………………………………. 42
1.8.7 数组算法 ……………………………………………………………………………………………. 43
1.8.8 命令行参数 ………………………………………………………………………………………… 44
1.8.9 多维数组 ……………………………………………………………………………………………. 45
1.9 功能分解 ………………………………………………………………………………… 48
1.9.1 静态方法的声明与调用 ………………………………………………………………………. 48
1.9.2 数组参数与返回值 ……………………………………………………………………………… 48
1.9.3 可变参数 ……………………………………………………………………………………………. 49
练习 ……………………………………………………………………………………………………… 50
第2章 面向对象编程………………………………………………………………………………….. 53
2.1 使用对象 …………………………………………………………………………………. 54
2.1.1 Accessor(访问器)和Mutator(更改器)方法 ……………………………………. 56
2.1.2 对象引用 ……………………………………………………………………………………………. 56
2.2 实现类 ………………………………………………………………………………….. 58
2.2.1 实例变量 ……………………………………………………………………………………………. 58
2.2.2 方法头 ……………………………………………………………………………………………….. 59
2.2.3 方法体 ……………………………………………………………………………………………….. 59
2.2.4 实例方法调用 …………………………………………………………………………………….. 60
2.2.5 this引用 ……………………………………………………………………………………………… 61
2.2.6 值调用 ……………………………………………………………………………………………….. 62
2.3 构造对象 ……………………………………………………………………………… 63
2.3.1 实现构造函数 …………………………………………………………………………………….. 64
2.3.2 重载 …………………………………………………………………………………………………… 64
2.3.3 调用另一个构造函数 ………………………………………………………………………….. 65
2.3.4 默认初始化 ………………………………………………………………………………………… 66
2.3.5 实例变量初始化 …………………………………………………………………………………. 66
2.3.6 final实例变量 ……………………………………………………………………………………… 67
2.3.7 无参构造函数 …………………………………………………………………………………….. 68
2.4 静态变量和方法 ……………………………………………………………. 69
2.4.1 静态变量 ……………………………………………………………………………………………. 69
2.4.2 静态常量 ……………………………………………………………………………………………. 70
2.4.3 静态初始块 ………………………………………………………………………………………… 71
2.4.4 静态方法 ……………………………………………………………………………………………. 71
2.4.5 工厂方法 ……………………………………………………………………………………………. 73
2.5 包 ………………………………………………………………………………………….. 73
2.5.1 包的声明 ……………………………………………………………………………………………. 74
2.5.2 类路径 ……………………………………………………………………………………………….. 75
2.5.3 包作用域 ……………………………………………………………………………………………. 77
2.5.4 导入包 ……………………………………………………………………………………………….. 78
2.5.5 静态导入 ……………………………………………………………………………………………. 79
2.6 嵌套类 …………………………………………………………………………………. 80
2.6.1 静态嵌套类 ………………………………………………………………………………………… 80
2.6.2 内部类 ……………………………………………………………………………………………….. 82
2.6.3 内部类的特殊语法 ……………………………………………………………………………… 85
2.7 文档注释 …………………………………………………………………………….. 86
2.7.1 插入注释 ……………………………………………………………………………………………. 86
2.7.2 类注释 ……………………………………………………………………………………………….. 87
2.7.3 方法注释 ……………………………………………………………………………………………. 88
2.7.4 变量注释 ……………………………………………………………………………………………. 88
2.7.5 通用注释 ……………………………………………………………………………………………. 89
2.7.6 链接 …………………………………………………………………………………………………… 89
2.7.7 包和概述注释 …………………………………………………………………………………….. 90
2.7.8 注释的提取 ………………………………………………………………………………………… 90
练习 ………………………………………………………………………………………………….. 91
第3章 接口和lambda表达式……………………………………………………………………….. 95
3.1 接口 …………………………………………………………………………………………. 96
3.1.1 声明接口 ……………………………………………………………………………………………. 96
3.1.2 实现接口 ……………………………………………………………………………………………. 97
3.1.3 转换为接口类型 …………………………………………………………………………………. 99
3.1.4 强制类型转换(cast)和instanceof操作符 …………………………………………… 99
3.1.5 继承接口 ………………………………………………………………………………………….. 100
3.1.6 实现多个接口 …………………………………………………………………………………… 101
3.1.7 常量 …………………………………………………………………………………………………. 101
3.2 静态方法和默认方法 …………………………………………………………….. 101
3.2.1 静态方法 ………………………………………………………………………………………….. 102
3.2.2 默认方法 ………………………………………………………………………………………….. 102
3.2.3 解决默认方法冲突 ……………………………………………………………………………. 103
3.3 接口示例 ……………………………………………………………………………. 105
3.3.1 Comparable接口 ………………………………………………………………………………… 105
3.3.2 Comparator接口 ………………………………………………………………………………… 107
3.3.3 Runable接口 ……………………………………………………………………………………… 108
3.3.4 UI(User Interface)回调 ………………………………………………………………….. 109
3.4 lambda表达式 ……………………………………………………………………………..110
3.4.1 lambda表达式语法 ……………………………………………………………………………..110
3.4.2 函数式接口 ………………………………………………………………………………………..111
3.5 方法引用和构造函数引用 …………………………………………………112
3.5.1 方法引用 ……………………………………………………………………………………………113
3.5.2 构造函数引用 …………………………………………………………….114
3.6 使用lambda表达式 …………………………………………………………………….115
3.6.1 实现延迟执行 …………………………………………………………………………………….115
3.6.2 选择函数式接口 …………………………………………………………………………………116
3.6.3 实现自己的函数式接口 ………………………………………………………………………118
3.7 lambda表达式和变量作用域 ……………………………………………..119
3.7.1 lambda表达式的作用域 ………………………………………………………………………119
3.7.2 访问来自闭合作用域的变量 ……………………………………………………………… 120
3.8 高阶函数 ……………………………………………………………………………… 123
3.8.1 返回函数的方法 ……………………………………………………………………………….. 123
3.8.2 修改函数的方法 ……………………………………………………………………………….. 123
3.8.3 Comparator方法 ………………………………………………………………………………… 124
3.9 局部内部类 …………………………………………………………….. 125
3.9.1 局部类 ……………………………………………………………………………………………… 125
3.9.2 匿名类 ……………………………………………………………………………………………… 126
练习 …………………………………………………………………………………………………………………… 127
第4章 继承与反射…………………………………………………………………………………… 131
4.1 继承一个类 …………………………………………………………………………….. 132
4.1.1 父类与子类 ………………………………………………………………………………………. 132
4.1.2 定义和继承子类方法 ………………………………………………………………………… 132
4.1.3 方法覆盖 ………………………………………………………………………………………….. 133
4.1.4 子类的构造 ………………………………………………………………………………………. 134
4.1.5 父类赋值 ………………………………………………………………………………………….. 135
4.1.6 转换 …………………………………………………………………………………………………. 136
4.1.7 final方法和类 ……………………………………………………………………………………. 136
4.1.8 抽象方法和类 …………………………………………………………………………………… 137
4.1.9 受保护访问 ………………………………………………………………………………………. 138
4.1.10 匿名子类 ………………………………………………………………………………………… 139
4.1.11 继承和默认方法 ……………………………………………………………………………… 140
4.1.12 带super的方法表达式 ……………………………………………………………………… 141
4.2 Object:终极父类………………………………………………………………………………………… 141
4.2.1 toString方法 ……………………………………………………………………………………… 142
4.2.2 equals方法 ………………………………………………………………………………………… 144
4.2.3 hashCode方法 …………………………………………………………………………………… 147
4.2.4 克隆对象 ………………………………………………………………………………………….. 148
4.3 枚举 ………………………………………………………………………………………… 151
4.3.1 枚举方法 ………………………………………………………………………………………….. 152
4.3.2 构造函数、方法和域 ………………………………………………………………………… 153
4.3.3 实例的实现体 …………………………………………………………………………………… 153
4.3.4 静态成员 ………………………………………………………………………………………….. 154
4.3.5 switch枚举对象 …………………………………………………………………………………. 155
4.4 运行时类型信息和资源 ………………………………………………………………… 156
4.4.1 Class类 …………………………………………………………………………………………….. 156
4.4.2 资源加载 ………………………………………………………………………………………….. 160
4.4.3 类加载器 ………………………………………………………………………………………….. 160
4.4.4 上下文类加载器 ……………………………………………………………………………….. 162
4.4.5 服务加载器 ………………………………………………………………………………………. 164
4.5 反射 …………………………………………………………………………………. 165
4.5.1 枚举类成员 ………………………………………………………………………………………. 165
4.5.2 对象检查 ………………………………………………………………………………………….. 167
4.5.3 方法调用 ………………………………………………………………………………………….. 167
4.5.4 对象构造 ………………………………………………………………………………………….. 168
4.5.5 JavaBeans …………………………………………………………………………………………. 169
4.5.6 使用数组 ………………………………………………………………………………………….. 170
4.5.7 代理 …………………………………………………………………………………………………. 172
练习 …………………………………………………………………………………………………………………… 174
第5章 异常、断言和日志处理…………………………………………………………………… 177
5.1 异常处理 ………………………………………………………………………………… 178
5.1.1 异常抛出 ………………………………………………………………………………………….. 178
5.1.2 异常继承层次 …………………………………………………………………………………… 179
5.1.3 已检查异常的声明 ……………………………………………………………………………. 181
5.1.4 异常捕获 ………………………………………………………………………………………….. 182
5.1.5 try-with-resources语句 ……………………………………………………………………….. 183
5.1.6 finally子句 ………………………………………………………………………………………… 185
5.1.7 异常重抛和链接 ……………………………………………………………………………….. 186
5.1.8 堆栈踪迹 ………………………………………………………………………………………….. 188
5.1.9 Objects.requireNonNull方法 ……………………………………………………………….. 189
5.2 断言 ………………………………………………………………………………………….. 189
5.2.1 使用断言 ………………………………………………………………………………………….. 190
5.2.2 启用和禁用断言 ……………………………………………………………………………….. 191
5.3 记录日志 ………………………………………………………………………… 191
5.3.1 采用Logger ……………………………………………………………………………………….. 192
5.3.2 日志记录器 ………………………………………………………………………………………. 192
5.3.3 日志级别 ………………………………………………………………………………………….. 192
5.3.4 其他日志记录方法 ……………………………………………………………………………. 193
5.3.5 日志记录的配置项 ……………………………………………………………………………. 195
5.3.6 日志处理器 ………………………………………………………………………………………. 196
5.3.7 过滤器和格式化器 ……………………………………………………………………………. 199
练习 …………………………………………………………………………………………… 199
第6章 泛型编程………………………………………………………………………………………. 203
6.1 泛型类 ………………………………………………………………………………………… 204
6.2 泛型方法 ……………………………………………………………………………………. 205
6.3 类型限定 …………………………………………………………………………………………………… 206
6.4 类型变异和通配符 ……………………………………………………………………………………. 207
6.4.1 子类型通配符 …………………………………………………………………………………… 208
6.4.2 父类型通配符 …………………………………………………………………………………… 209
6.4.3 带类型变量的通配符 ………………………………………………………………………… 210
6.4.4 无限定通配符 …………………………………………………………………………………… 212
6.4.5 通配符捕获 ………………………………………………………………………………………. 212
6.5 Java虚拟机中的泛型 ……………………………………………………………………………….. 213
6.5.1 类型擦除 ………………………………………………………………………………………….. 213
6.5.2 转换插入 ………………………………………………………………………………………….. 214
6.5.3 桥方法 ……………………………………………………………………………………………… 215
6.6 泛型约束 ……………………………………………………………………………………………….. 216
6.6.1 无基本类型参数 ……………………………………………………………………………….. 217
6.6.2 所有类型在运行时都是原始的 ………………………………………………………….. 217
6.6.3 不能实例化类型变量 ………………………………………………………………………… 218
6.6.4 不能构造参数化类型的数组 ……………………………………………………………… 220
6.6.5 静态上下文中的类类型变量不是有效的 ……………………………………………. 221
6.6.6 类型擦除后的方法可能不冲突 ………………………………………………………….. 222
6.6.7 异常与泛型 ………………………………………………………………………………………. 223
6.7 反射与泛型 …………………………………………………………………………………….. 224
6.7.1 Class<T>类 ………………………………………………………………………………………. 224
6.7.2 虚拟机中的泛型类型信息 …………………………………………………………………. 225
练习 …………………………………………………………………………………………………………………… 227
第7章 集合…………………………………………………………………………………………….. 233
7.1 集合类框架概要 ……………………………………………………………………………. 234
7.2 迭代器 ………………………………………………………………………………….. 238
7.3 set ………………………………………………………………………………………………………………. 240
7.4 map ………………………………………………………………………………………………………….. 241
7.5 其他集合 …………………………………………………………………………………………… 245
7.5.1 Properties ………………………………………………………………………………………….. 245
7.5.2 位组 …………………………………………………………………………………………………. 247
7.5.3 枚举set和枚举map …………………………………………………………………………….. 248
7.5.4 栈、队列、双端队列、优先级队列 …………………………………………………… 249
7.5.5 弱哈希映射表 …………………………………………………………………………………… 250
7.6 视图 …………………………………………………………………………………………………………. 251
7.6.1 范围(range) ………………………………………………………………………………….. 251
7.6.2 空视图和单例视图 ……………………………………………………………………………. 252
7.6.3 不可修改的视图 ……………………………………………………………………………….. 252
练习 ………………………………………………………………………………………………………………… 253
第8章 Stream…………………………………………………………………………………………. 257
8.1 从迭代到Stream操作 …………………………………………………………………………………. 258
8.2 创建Stream ……………………………………………………………………………………………….. 259
8.3 filter、map和flatMap方法 ………………………………………………………………………….. 261
8.4 提取子流和组合流 …………………………………………………………………………….. 262
8.5 其他流转换 ……………………………………………………………………………………… 263
8.6 简单归约 ………………………………………………………………………………………. 264
8.7 Optional类型 ……………………………………………………………………………………. 265
8.7.1 如何使用Optional类型值 …………………………………………………………………… 265
8.7.2 如何不使用Optional类型值 ……………………………………………………………….. 266
8.7.3 创建Optional类型值 ………………………………………………………………………….. 267
8.7.4 使用flatMap来组合可选值函数 ………………………………………………………….. 267
8.8 收集结果 ……………………………………………………………………………………… 268
8.9 将结果收集到map中 ……………………………………………………………………….. 270
8.10 分组和分片 ………………………………………………………………………………. 271
8.11 下游收集器 …………………………………………………………………………………. 272
8.12 归约操作 ………………………………………………………………………………………………… 274
8.13 基本类型流 …………………………………………………………………………………………….. 276
8.14 并行流 ……………………………………………………………………………………………………. 278
练习 …………………………………………………………………………………………………………………. 280
第9章 输入与输出处理…………………………………………………………………………….. 285
9.1 输入/输出流:Reader和Writer ……………………………………………………………………… 286
9.1.1 获取流对象 ………………………………………………………………………………………. 286
9.1.2 读取字节 ………………………………………………………………………………………….. 287
9.1.3 写字节 ……………………………………………………………………………………………… 288
9.1.4 字符集编码 ………………………………………………………………………………………. 288
9.1.5 文本输入 ………………………………………………………………………………………….. 291
9.1.6 文本输出 ………………………………………………………………………………………….. 292
9.1.7 读写二进制数据 ……………………………………………………………………………….. 294
9.1.8 随机存取文件 …………………………………………………………………………………… 295
9.1.9 内存映射文件 …………………………………………………………………………………… 295
9.1.10 文件锁 ……………………………………………………………………………………………. 296
9.2 路径、文件和目录 ………………………………………………………………………………….. 297
9.2.1 路径 …………………………………………………………………………………………………. 297
9.2.2 创建文件和目录 ……………………………………………………………………………….. 299
9.2.3 复制、移动和删除文件 …………………………………………………………………….. 300
9.2.4 访问目录内容 …………………………………………………………………………………… 301
9.2.5 ZIP文件系统 …………………………………………………………………………………….. 304
9.3 URL连接 …………………………………………………………………………………………………. 305
9.4 正则表达式 ……………………………………………………………………………………………… 307
9.4.1 正则表达式语法 ……………………………………………………………………………….. 307
9.4.2 匹配一个或多个 …………………………………………………………………………………311
9.4.3 分组 …………………………………………………………………………………………………. 312
9.4.4 消除或替换匹配结果 ………………………………………………………………………… 313
9.4.5 标记 …………………………………………………………………………………………………. 314
9.5 序列化 ……………………………………………………………………………………….. 315
9.5.1 Serializable接口 ………………………………………………………………………………… 315
9.5.2 瞬态实例变量 …………………………………………………………………………………… 317
9.5.3 readObject和writeObject方法 ……………………………………………………………… 317
9.5.4 readResolve和writeReplace方法 …………………………………………………………. 319
9.5.5 版本化 ……………………………………………………………………………………………… 320
练习 ……………………………………………………………………………………………………… 321
第10章 并发编程…………………………………………………………………………………….. 325
10.1 并发任务 ……………………………………………………………………………………. 326
10.1.1 运行任务 ………………………………………………………………………………………. 326
10.1.2 Future和Executor服务 ……………………………………………………………………. 328
10.2 线程安全 ……………………………………………………………………………………. 331
10.2.1 可见性 ………………………………………………………………………………………….. 331
10.2.2 竞争条件 ………………………………………………………………………………………. 333
10.2.3 安全并发的策略 ……………………………………………………………………………. 336
10.2.4 不可变类 ………………………………………………………………………………………. 336
10.3 并行算法 ……………………………………………………………………………….. 337
10.3.1 并行流 ………………………………………………………………………………………….. 338
10.3.2 并行数组操作 ……………………………………………………………………………….. 338
10.4 线程安全的数据结构 …………………………………………………………………… 339
10.4.1 ConcurrentHashMap ………………………………………………………………………. 340
10.4.2 阻塞队列 ………………………………………………………………………………………. 341
10.4.3 其他线程安全的数据结构 ……………………………………………………………… 343
10.5 原子值 ……………………………………………………………………………………… 344
10.6 锁 ………………………………………………………………………………………….. 346
10.6.1 可重入锁(ReentrantLock) ………………………………………………………….. 347
10.6.2 synchronized关键字……………………………………………………………………….. 348
10.6.3 条件等待 ………………………………………………………………………………………. 350
10.7 线程 ………………………………………………………………………………………… 352
10.7.1 启动线程 ………………………………………………………………………………………. 352
10.7.2 线程中断 ………………………………………………………………………………………. 353
10.7.3 线程变量 ………………………………………………………………………………………. 355
10.7.4 线程的其他属性 ……………………………………………………………………………. 356
10.8 异步计算 …………………………………………………………………………………………. 356
10.8.1 UI回调中的长期运行任务 ……………………………………………………………… 356
10.8.2 可完成的future ……………………………………………………………………………… 358
10.9 进程 …………………………………………………………………………………. 361
10.9.1 构建进程 ………………………………………………………………………………………. 361
10.9.2 运行进程 ………………………………………………………………………………………. 363
练习 …………………………………………………………………………………….. 364
第11章 注解…………………………………………………………………………………………… 371
11.1 使用注解 …………………………………………………………………………….. 372
11.1.1 注解元素 ………………………………………………………………………………………. 372
11.1.2 多注解和重复注解 ………………………………………………………………………… 373
11.1.3 注解声明 ………………………………………………………………………………………. 374
11.1.4 注解类型用途 ……………………………………………………………………………….. 375
11.1.5 明确接收者 …………………………………………………………………………………… 376
11.2 定义注解 …………………………………………………………………………….. 378
11.3 标准注解 …………………………………………………………………………………… 380
11.3.1 编译相关的注解 ……………………………………………………………………………. 381
11.3.2 资源管理相关的注解 …………………………………………………………………….. 382
11.3.3 元注解 ………………………………………………………………………………………….. 382
11.4 运行时注解处理 ……………………………………………………………………… 384
11.5 源码级注解处理 ………………………………………………………………………. 387
11.5.1 注解处理器 …………………………………………………………………………………… 388
11.5.2 语言模型API…………………………………………………………………………………. 388
11.5.3 使用注解生成源码 ………………………………………………………………………… 389
练习 ………………………………………………………………………………… 392
第12章 日期和时间API…………………………………………………………………………….. 395
12.1 时间线 …………………………………………………………………………………………. 396
12.2 本地日期 ………………………………………………………………………………. 398
12.3 日期调整器 ………………………………………………………………………………… 401
12.4 本地时间 ……………………………………………………………………………………. 402
12.5 时区时间 …………………………………………………………………….. 403
12.6 格式化和解析 …………………………………………………………………… 406
12.7 应对遗留代码 ……………………………………………………………………… 409
练习 ………………………………………………………………………………………………411
第13章 国际化………………………………………………………………………………………… 413
13.1 本地化 ……………………………………………………………………………….. 414
13.1.1 指定本地化 …………………………………………………………………………………… 414
13.1.2 默认locale …………………………………………………………………………………….. 417
13.1.3 显示名称 ………………………………………………………………………………………. 418
13.2 数字格式化 ………………………………………………………………………………. 418
13.3 货币符号 ……………………………………………………………………………………. 419
13.4 日期和时间格式化 ………………………………………………………………. 420
13.5 排序和规格化 ………………………………………………………………………………. 422
13.6 消息格式化 ……………………………………………………………………………. 424
13.7 资源束 ……………………………………………………………………………………… 426
13.7.1 组织资源束 …………………………………………………………………………………… 426
13.7.2 资源束类 ………………………………………………………………………………………. 428
13.8 字符集编码 ……………………………………………………………………… 429
13.9 首选项 ………………………………………………………………………………….. 430
练习 …………………………………………………………………………………………………. 432
第14章 编译与脚本…………………………………………………………………………………. 435
14.1 编译器API …………………………………………………………………………………………………. 435
14.1.1 调用编译器 …………………………………………………………………………………… 436
14.1.2 启动编译任务 ……………………………………………………………………………….. 436
14.1.3 从内存读取源文件 ………………………………………………………………………… 437
14.1.4 向内存写入字节码 ………………………………………………………………………… 438
14.1.5 捕获诊断信息 ……………………………………………………………………………….. 440
14.2 脚本API …………………………………………………………………………………………………….. 440
14.2.1 获取脚本引擎 ……………………………………………………………………………….. 440
14.2.2 绑定 ……………………………………………………………………………………………… 441
14.2.3 重定向输入与输出 ………………………………………………………………………… 442
14.2.4 调用脚本函数和方法 …………………………………………………………………….. 443
14.2.5 编译脚本 ………………………………………………………………………………………. 444
14.3 Nashorn脚本引擎 …………………………………………………………………… 445
14.3.1 从命令行运行Nashorn …………………………………………………………………… 445
14.3.2 调用get、set和重载方法 ……………………………………………………………….. 446
14.3.3 构造Java对象 ………………………………………………………………………………… 447
14.3.4 JavaScript和Java中的字符串 ………………………………………………………….. 449
14.3.5 数字 ……………………………………………………………………………………………… 449
14.3.6 使用数组 ………………………………………………………………………………………. 450
14.3.7 列表与映射 …………………………………………………………………………………… 451
14.3.8 lambda表达式 ……………………………………………………………………………….. 452
14.3.9 继承Java类与实现Java接口 ……………………………………………………………. 453
14.3.10 异常 ……………………………………………………………………………………………. 455
14.4 shell脚本与Nashorn …………………………………………………………………… 455
14.4.1 执行shell命令 ……………………………………………………………………………….. 456
14.4.2 字符串插值 …………………………………………………………………………………… 456
14.4.3 脚本输入 ………………………………………………………………………………………. 457
练习 ………………………………………………………………………………………. 458
· · · · · ·

添加微信公众号:好书天下获取

添加微信公众号:“好书天下”获取书籍好书天下 » 写给大忙人看的Java核心技术
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!

 

添加微信公众号:“好书天下”获取书籍

添加微信公众号:“好书天下”获取书籍添加微信公众号:“好书天下”获取书籍