译者的话 封面 前言 简介 第一章 对象的概念 抽象 接口 服务提供 封装 复用 继承 多态 单继承 集合 生命周期 异常处理 本章小结 第二章 安装Java和本书用例 编辑器 Shell Java安装 校验安装 安装和运行代码示例 第三章 万物皆对象 对象操纵 对象创建 代码注释 对象清理 类的创建 程序编写 小试牛刀 编码风格 本章小结 第四章 运算符 使用说明 优先级 赋值 算术运算符 递增和递减 关系运算符 逻辑运算符 字面值常量 按位运算符 移位运算符 三元运算符 字符串运算符 常见陷阱 类型转换 Java没有sizeof 运算符总结 本章小结 第五章 控制流 true和flase if-else 迭代语句 for-in语法 return break和continue 臭名昭著的goto switch switch字符串 本章小结 第六章 初始化和清理 利用构造器保证初始化 方法重载 无参构造器 this关键字 垃圾回收器 成员初始化 构造器初始化 数组初始化 枚举类型 本章小结 第七章 封装 包的概念 访问权限修饰符 接口和实现 类访问权限 本章小结 第八章 复用 组合语法 继承语法 委托 结合组合与继承 组合与继承的选择 protected 向上转型 final关键字 类初始化和加载 本章小结 第九章 多态 向上转型回溯 深入理解 构造器和多态 返回类型协变 使用继承设计 本章小结 第十章 接口 抽象类和方法 接口创建 抽象类和接口 完全解耦 多接口结合 使用继承扩展接口 接口适配 接口字段 接口嵌套 接口和工厂方法模式 本章小结 第十一章 内部类 创建内部类 链接外部类 内部类this和new的使用 内部类向上转型 内部类方法和作用域 匿名内部类 嵌套类 内部类应用场景 继承内部类 重写内部类 内部类局部变量 内部类标识符 本章小结 第十二章 集合 泛型和类型安全的集合 基本概念 添加元素组 集合的打印 列表List 迭代器Iterators 链表LinkedList 堆栈Stack 集合Set 映射Map 队列Queue 集合与迭代器 for-in和迭代器 本章小结 第十三章 函数式编程 新旧对比 Lambda表达式 方法引用 函数式接口 高阶函数 闭包 函数组合 柯里化和部分求值 纯函数式编程 本章小结 第十四章 流式编程 流支持 流创建 中级流操作 Optional类 终端操作 本章小结 第十五章 异常 异常概念 基本异常 异常捕获 自定义异常 异常规范 任意异常捕获 Java标准异常 finally关键字 异常限制 异常构造 Try-With-Resources用法 异常匹配 异常准则 异常指南 本章小结 第十六章 代码校验 测试 前提条件 测试驱动开发 日志 调试 基准测试 分析和优化 风格检测 静态错误分析 代码重审 结对编程 重构 持续集成 本章小结 第十七章 文件 文件和目录路径 目录 文件系统 路径监听 文件查找 文件读写 本章小结 第十八章 字符串 字符串的不可变 重载和StringBuilder 意外递归 字符串操作 格式化输出 常规表达式 扫描输入 StringTokenizer类 本章小结 第十九章 类型信息 运行时类型信息 类的对象 类型转换检测 注册工厂 类的等价比较 反射运行时类信息 动态代理 Optional类 接口和类型 本章小结 第二十章 泛型 简单泛型 泛型接口 泛型方法 复杂模型构建 泛型擦除 补偿擦除 边界 通配符 问题 自我约束类型 动态类型安全 泛型异常 混入 潜在类型 补偿不足 辅助潜在类型 泛型的优劣 第二十一章 数组 数组特性 一等对象 返回数组 多维数组 泛型数组 Arrays的fill方法 Arrays的setAll方法 增量生成 随机生成 泛型和基本数组 数组元素修改 数组并行 Arrays工具类 数组拷贝 数组比较 流和数组 数组排序 binarySearch二分查找 parallelPrefix并行前缀 本章小结 第二十二章 枚举 基本功能 方法添加 switch语句 values方法 实现而非继承 随机选择 使用接口组织 使用EnumSet替代Flags 使用EnumMap 常量特定方法 多次调度 本章小结 第二十三章 注解 基本语法 编写注解处理器 使用javac处理注解 基于注解的单元测试 本章小结 第二十四章 并发编程 术语问题 并发的超能力 针对速度 四句格言 残酷的真相 本章其余部分 并行流 创建和运行任务 终止耗时任务 CompletableFuture类 死锁 构造函数非线程安全 复杂性和代价 本章小结 第二十五章 设计模式 概念 构建型 面向实施 工厂模式 函数对象 接口改变 解释器 回调 多次调度 模式重构 抽象用法 多次派遣 访问者模式 RTTI的优劣 本章小结 附录:补充 可下载的补充 通过Thinking-in-C来巩固Java基础 动手实践 附录:编程指南 设计 实现 附录:文档注释 附录:对象传递和返回 传递引用 本地拷贝 控制克隆 不可变类 本章小结 附录:流式IO 输入流类型 输出流类型 添加属性和有用的接口 Reader和Writer RandomAccessFile类 IO流典型用途 本章小结 附录:标准IO 执行控制 附录:新IO ByteBuffer 转换数据 获取原始类型 视图缓冲区 使用缓冲区进行数据操作 内存映射文件 文件锁定 附录:理解equals和hashCode方法 equals典范 哈希和哈希码 调整HashMap 附录:集合主题 示例数据 List表现 Set表现 在Map中使用函数式操作 选择Map的部分 集合的fill方法 使用Flyweight自定义集合和Map 集合功能 可选操作 Set和存储顺序 队列 理解Map 集合工具类 持有引用 避免旧式类库 本章小结 附录:并发底层原理 线程 异常捕获 资源共享 volatile关键字 原子性 关键部分 库组件 本章小结 附录:数据压缩 使用Gzip简单压缩 使用zip多文件存储 Java的jar 附录:对象序列化 查找类 控制序列化 使用持久化 附录:静态语言类型检查 前言 静态类型检查和测试 如何提升打字 生产力的成本 静态和动态 附录:C++和Java的优良传统 附录:成为一名程序员 如何开始 码农生涯 百分之五的神话 重在动手 像打字般编程 做你喜欢的事 词汇表