- 创建内部类
- 链接外部类
- 使用 .this 和 .new
- 内部类与向上转型
- 内部类方法和作用域
- 匿名内部类
- 嵌套类
- 为什么需要内部类
- 继承内部类
- 内部类可以被覆盖么?
- 局部内部类
- 内部类标识符
- 本章小结
- 泛型和类型安全的集合
- 基本概念
- 添加元素组
- 集合的打印
- 列表List
- 迭代器Iterators
- 链表LinkedList
- 堆栈Stack
- 集合Set
- 映射Map
- 队列Queue
- 集合与迭代器
- for-in和迭代器
- 本章小结
- 异常概念
- 基本异常
- 异常捕获
- 自定义异常
- 异常声明
- 捕获所有异常
- Java 标准异常
- 使用 finally 进行清理
- 异常限制
- 构造器
- Try-With-Resources 用法
- 异常匹配
- 其他可选方式
- 异常指南
- 本章小结
- 后记:Exception Bizarro World
- 简单泛型
- 泛型接口
- 泛型方法
- 构建复杂模型
- 泛型擦除
- 补偿擦除
- 边界
- 通配符
- 问题
- 自限定的类型
- 动态类型安全
- 泛型异常
- 混型
- 潜在类型机制
- 对缺乏潜在类型机制的补偿
- Java8 中的辅助潜在类型
- 总结:类型转换真的如此之糟吗?
- 进阶阅读
- 数组特性
- 一等对象
- 返回数组
- 多维数组
- 泛型数组
- Arrays的fill方法
- Arrays的setAll方法
- 增量生成
- 随机生成
- 泛型和基本数组
- 数组元素修改
- 数组并行
- Arrays工具类
- 数组拷贝
- 数组比较
- 流和数组
- 数组排序
- Arrays.sort 的使用
- 并行排序
- binarySearch二分查找
- parallelPrefix并行前缀
- 本章小结
- 基本 enum 特性
- 方法添加
- switch 语句中的 enum
- values 方法的神秘之处
- 实现而非继承
- 随机选择
- 使用接口组织枚举
- 使用 EnumSet 替代 Flags
- 使用 EnumMap
- 常量特定方法
- 多路分发
- 本章小结
- 术语问题
- 并发的超能力
- 并发为速度而生
- 四句格言
- 残酷的真相
- 本章其余部分
- 并行流
- 创建和运行任务
- 终止耗时任务
- CompletableFuture 类
- 死锁
- 构造方法非线程安全
- 复杂性和代价
- 本章小结