《写给大忙人看的Java核心技术》为经典著作Core Java作者Cay S. Horstmann的全新力作,以关键的核心技术为着眼点,以全局高度提炼语言精髓,以高浓度、高含金量的方式对Java 8新特性进行细致讲解,将其沉浸于Java多年的真知灼见蕴藏于书中,既扎实覆盖Java编程的基础知识,更独具匠心地从Java 8极其重要的新特性之一lambda表达式发端,带领读者一路探索和实践Java 8的诸多新特性,诸如针对数据处理的Stream、并发编程中的增强部分、全新的时间/日期API,以及脚本语言在Java中的使用。
“For the Impatient”系列风格鲜明,除悉数出自大师之手外,更以文笔轻松、易读易懂、富含生动且可用于实践的示例程序(下载源代码后可直接运行)见长。这种亲身实践的讲授模式,非常便于各阶层读者加深对技术的理解和掌握,初学者可用来参考入门,有开发经验者也可用来巩固编程核心知识,或与时俱进地把握技术发展现状与未来趋势。
《写给大忙人看的Java核心技术》适合有一定Java开发经验的工程师或者架构师阅读,也可以作为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
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 字符集编码 ..
《未来银行全面风险管理》内容简介:本书从历史演进和核心要义两个纬度,对银行经营模式、巴塞尔协议、COSO企业风险管理框架进行了
《虚拟智能体理论与技术》内容简介:本书结合国内外虚拟现实技术的发展潮流,结合作者以往的研究基础,论述了建立智能体的理论、方
《人工智能复杂问题求解的结构和策略(原书第6版)》是一本经典的人工智能教材,全面阐述了人工智能的基础理论,有效结合了求解智能
随着Ajax技术的不断风靡,其核心技术JavaScript越来越受到人们的关注,各种JavaScript的框架层出不穷。jQuery作为JavaScript框架
本书是C++模板编程的完全指南,旨在通过基本概念、常用技巧和应用实例3方面的有用资料,为读者打下C++模板知识的坚实基础。全书共
傻博士超经典问答3000例(1CD) 目录 PART 1 电脑故障诊断与导读 电脑硬件故障的种类 电脑软件故障的种类 病毒、木马故障排除原则 电脑故障的排除原则...
《怎样成为一名设计师》内容简介:头脑独立的设计师需要自己发现合理建议,也需要当代设计师面对的道德与实践问题的指南。《怎样
《大国经济学》内容简介:起点独特·规模巨大·区域差异显著·治理层级复杂·连接全球的制造业大国 · 改革开放40余年,在一个急速
“法国文化电台”记者R·舍普就目前法国社会较为关心的,关于科技对社会的影响的问题,采访了法国学界的一些人士。采访笔录形成了
本书是原创Java技术图书领域继《深入理解Java虚拟机》后的又一实力之作,也是全球首本基于最新OSGiR5.0规范的著作。理论方面,既
ShawnWelch编著的《iOSApp界面设计创意与实践》介绍如何将这些让人感到兴奋的创意原型,融入到真实的App之中。包括iOS入门、iOS用
五笔字根查记手册 内容简介 许多人觉得五笔字型难学难记,难就难在五笔字型的编码与拆分。初学五笔字型的人都有这样的感觉,碰到一个汉字,往往**个字根能够准确地拆分...
群体研讨支持系统及其文本分析方法 内容简介 本书分上下两部分, 上半部分重点介绍了群体研讨支持系统研究的*近进展, 主要涉及群体决策中相关的任务类型, 群体支持...
计算机网络操作技能 内容简介 本书是专为全国高等院校非计算机专业编写的计算机网络实验用书。本书从易教易学的目标出发,采用项目实现+知识延伸+思考与练习的全新教学...
《若到江南赶上春》内容简介:本书是吴浩然漫画作品的合集,每幅画作配以简短文字阐述画面,延续丰子恺轻松、风雅、有趣的风格,展
《ROS机器人开发:实用案例分析(原书第2版)》内容简介:本书不仅涵盖ROS的基础知识,还循序渐进地讲解了ROS机器人的高级应用特性
《一本书读懂经济指标》内容简介:《一本书读懂经济指标》全面介绍了经济领域中的各项指标,从宏观的GDP、GNP、CPI等到微观的经理人
《新能源汽车关键部件结构图解手册》内容简介:本书是新能源汽车关键部件的结构图解手册,书中以图示配合文字讲解的方式,介绍了目
跟阿铭学Linux-(第3版) 本书特色 本书是一本入门级的Linux学习教材,适合初学者阅读。本教程由浅入深,内容精湛,案例丰富,通俗易懂!书中分两部分:前面...
《深入浅出数据分析》以类似“章回小说”的活泼形式,生动地向读者展现优秀的数据分析人员应知应会的技术:数据分析基本步骤、实