新書推薦:
《
亚述:世界历史上第一个帝国的兴衰
》
售價:NT$
490.0
《
人工智能与大数据:采煤机智能制造
》
售價:NT$
440.0
《
新民说·逝去的盛景:宋朝商业文明的兴盛与落幕(上下册)
》
售價:NT$
790.0
《
我从何来:自我的心理学探问
》
售價:NT$
545.0
《
失败:1891—1900 清王朝的变革、战争与排外
》
售價:NT$
390.0
《
万千心理·我的精神分析之道:复杂的俄狄浦斯及其他议题
》
售價:NT$
475.0
《
荷马:伊利亚特(英文)-西方人文经典影印21
》
售價:NT$
490.0
《
我的心理医生是只猫
》
售價:NT$
225.0
編輯推薦:
√ 经典名著Core Java作者力作,面向Java 8新特性的浓缩精华
√ 涵盖lambda、Stream及并发编程增强、时间日期API及使用脚本语言
√ for the Impatient系列文风轻松,有趣易懂,富含生动的可实际运行的源代码
√ 加入对Java 8新特性深刻理解,适合各阶层读者上手、巩固和提高编程技能
內容簡介:
本书是《Java核心技术》的主要作者Cay S. Horstmann全面、细致介绍Java 8新特性的一本新书,包含了他一直以来对Java的真知灼见。本书首先介绍了Java编程中*基础的内容,然后从Java 8*重要的新特性之一lambda表达式讲起,带领读者一路探索和实践Java 8的新特性。这当中不仅包含了针对数据处理的Stream和并发编程中增强的内容,还介绍了**的时间日期API以及如何在Java中使用脚本语言。
本书内容浅显易懂,文笔风趣幽默。书中包含了生动的、可实际应用的示例程序源代码,读者可以自行下载并运行,这种亲身实践有助于加深对Java 8新特性的理解。即便对于初学者来说,本书也是有具有很强的参考学习价值。对于那些有一定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拥护者。
目錄 :
第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章 St
內容試閱 :
译者序
2014年Oracle发布了Java 8。Java 8引入了很多革命性的新特性,例如,lambda表达式、Stream、函数式接口、新的时间日期API、增强的并发API等。本书特色鲜明,它不仅为开发者全面介绍这些新特性,而且从Java*核心基础——类、继承、接口、反射、泛型编程、集合等开始。全书开始几章全面细致、重点突出地介绍Java的核心基础并在第3章穿插了lambda表达式。之后各章全面介绍Java 8中的新特性和原有功能的改进,其中第8章详细介绍Stream的使用,第10章介绍**的并发编程API。全书内容翔实,实例丰富,理论与实践并举。
译者在翻译本书时,一边感到万分的荣幸,一边也颇觉战战兢兢。吉尔伯特·海特(美国教育家)曾经说过:写了一本很糟糕的书只是犯错而已,而把一本好书翻译得很糟糕则是犯罪。但是对于本书这样的Java核心技术和**特性之作,即便是冒着犯罪的风险,也值得翻译出来并推荐给大家。
本书承载的内容丰富而深入。在翻译的过程中,译者也常感汗颜,原来自诩对Java 8新特性颇为了解的我深刻感受到自己知识面的浅薄和不完整,于是翻译过程也成为自己检讨和学习的过程,收获颇丰。本书的作者是经典书籍Core Java(《Java核心技术》)的主要作者,他有着丰富的Java知识,并一直在普及介绍Java的**特性。因此,希望大家反复阅读,必定受益无穷。
由于本书作者的知识广博、经验丰富,而译者本人知识有限、时间仓促,难免对原文的个别之处无法原汁原味地呈现给读者,在此敬请各位读者多多包涵,不吝指教,并帮忙指出纰漏。也希望能就本书的内容与读者有更多的交流,我的邮箱是yqbjtu@163.com。
*后,我要感谢电子工业出版社博文视点公司的张春雨编辑在译书的过程中给予我们的莫大帮助。我还要感谢本书的其他译者王巍、高伟斌、吴建军、张媛、田敏、王雪芳、杨建轩、康引鸽、刘增涛、杨燕和东莞经济贸易学校的谢志强老师等。特别感谢CSDN论坛Java版大版主(讯联数据架构师)孔德芳、北京大米未来科技有限公司CTO霍振中,他们的参与使得本书的质量得到进一步保证。
杨 谦
2016年1月于宁波江南景苑