深入理解Java:第二版

需积分: 10 1 下载量 28 浏览量 更新于2024-07-31 收藏 4.43MB DOC 举报
"THINKING IN JAVA - 英文原版,读者评论高度赞扬,被认为是学习Java的最佳教程之一,尤其适合深入理解编程原理和概念。" 《Thinking in Java》是Bruce Eckel所著的一本经典Java编程书籍,由MindView, Inc.的总裁撰写。这本书在读者中获得了极高的评价,被称赞为比其他Java书籍优秀一个数量级,内容全面,示例直接,解释清晰且不简化,具有成熟、一致、智力诚实、写作风格精炼和精确的特点,被认为是学习Java的理想教材。 评论者Anatoly Vorobey(来自以色列Technion大学)认为该书对于学习Java的人来说是理想的,Joakim Ziegler则称其为他见过的最佳编程教程,无论针对哪种语言。南非King Edward VIII医院的Gavin Pillay博士和Eli Lilly & Co.的自动化技术员Randall R. Hawley都表达了对本书的深深感激,指出它帮助非C程序员快速掌握了Java编程,并能从一开始就理解到编程的基础原则和概念,而不是通过反复试错来构建概念模型。 《Thinking in Java》的第二版进一步强化了这些优点,提供了丰富的实例和深入的理论解析,使得读者能够系统地学习Java语言,并理解其背后的机制。书中涵盖了Java的核心特性,如面向对象编程、类与对象、封装、继承、多态性,以及异常处理、输入/输出、集合框架、网络编程等多个方面。此外,作者还强调了设计模式和软件工程的最佳实践,帮助读者不仅仅学会语法,还能在实际项目中应用所学。 通过阅读这本书,读者可以期待获得以下关键知识点: 1. **面向对象编程基础**:理解类、对象、接口和包的概念,以及如何使用它们来组织代码。 2. **数据类型和控制结构**:学习基本的数据类型,包括原始类型和引用类型,以及条件语句和循环控制。 3. **函数和方法**:掌握函数的定义、参数传递和返回值,理解方法重载和重写。 4. **异常处理**:学习如何使用try-catch-finally结构来捕获和处理程序中的错误。 5. **集合框架**:了解ArrayList、LinkedList、HashSet、HashMap等容器的用法,以及泛型的应用。 6. **输入/输出**:学习Java的IO流体系,包括文件读写和网络通信。 7. **多线程**:理解并发编程的基本概念,如线程同步和互斥。 8. **反射和动态代理**:掌握运行时类型信息的获取和利用,以及动态代理的实现。 9. **Java SE API**:熟悉标准库的使用,包括常用的类和接口。 10. **设计模式**:介绍常见的设计模式,如单例模式、工厂模式、装饰器模式等,提升代码的可维护性和复用性。 这本书的评价如此之高,是因为它不仅是一本教学手册,更是一本可以伴随程序员成长的参考书,适合初学者和有经验的开发者。通过深入阅读和实践书中的例子,读者能够建立起坚实的基础,并逐步提升Java编程能力。
2007-09-30 上传
引言
1. 前提
2. Java的学习
3. 目标
4. 联机文档
5. 章节
6. 练习
7. 多媒体CD-ROM
8. 源代码
9. 编码样式
10. Java版本
11. 课程和培训
12. 错误
13. 封面设计
14. 致谢

第1章 对象入门
1.1 抽象的进步
1.2 对象的接口
1.3 实现方案的隐藏
1.4 方案的重复使用
1.5 继承:重新使用接口
1.5.1 改善基础类
1.5.2 等价和类似关系
1.6 多形对象的互换使用
1.6.1 动态绑定
1.6.2 抽象的基础类和接口
1.7 对象的创建和存在时间
1.7.1 集合与继承器
1.7.2 单根结构
1.7.3 集合库与方便使用集合
1.7.4 清除时的困境:由谁负责清除?
1.8 违例控制:解决错误
1.9 多线程
1.10 永久性
1.11 Java和因特网
1.11.1 什么是Web?
1.11.2 客户端编程
1.11.3 服务器端编程
1.11.4 一个独立的领域:应用程序
1.12 分析和设计
1.12.1 不要迷失
1.12.2 阶段0:拟出一个计划
1.12.3 阶段1:要制作什么?
1.12.4 阶段2:开始构建?
1.12.5 阶段3:正式创建
1.12.6 阶段4:校订
1.12.7 计划的回报
1.13 Java还是C++?

第2章 一切都是对象
2.1 用句柄操纵对象
2.2 必须创建所有对象
2.2.1 保存在什么地方
2.2.2 特殊情况:主类型
2.2.3 Java中的数组
2.3 绝对不要清除对象
2.3.1 作用域
2.3.2 对象的作用域
2.4 新建数据类型:类
2.4.1 字段和方法
2.5 方法、自变量和返回值
2.5.1 自变量列表
2.6 构建Java程序
2.6.1 名字的可见性
2.6.2 使用其他组件
2.6.3 static关键字
2.7 我们的第一个Java程序
2.8 注释和嵌入文档
2.8.1 注释文档
2.8.2 具体语法
2.8.3 嵌入HTML
2.8.4 @see:引用其他类
2.8.5 类文档标记
2.8.6 变量文档标记
2.8.7 方法文档标记
2.8.8 文档示例
2.9 编码样式
2.10 总结
2.11 练习

第3章 控制程序流程
3.1 使用Java运算符
3.1.1 优先级
3.1.2 赋值
3.1.3 算术运算符
3.1.4 自动递增和递减
3.1.5 关系运算符
3.1.6 逻辑运算符
3.1.7 按位运算符
3.1.8 移位运算符
3.1.9 三元if-else运算符
3.1.10 逗号运算符
3.1.11 字串运算符+
3.1.12 运算符常规操作规则
3.1.13 造型运算符
3.1.14 Java没有“sizeof”
3.1.15 复习计算顺序
3.1.16 运算符总结
3.2 执行控制
3.2.1 真和假
3.2.2 if-else
3.2.3 反复
3.2.4 do-while
3.2.5 for
3.2.6 中断和继续
3.2.7 切换
3.3 总结
3.4 练习

第4章 初始化和清除
4.1 由构建器保证初始化
4.2 方法过载
4.2.1 区分过载方法
4.2.2 主类型的过载
4.2.3 返回值过载
4.2.4 默认构建器
4.2.5 this关键字
4.3 清除:收尾和垃圾收集
4.3.1 finalize()用途何在
4.3.2 必须执行清除
4.4 成员初始化
4.4.1 规定初始化
4.4.2 构建器初始化
4.5 数组初始化
4.5.1 多维数组
4.6 总结
4.7 练习

第5章 隐藏实施过程
5.1 包:库单元
5.1.1 创建独一无二的包名
5.1.2 自定义工具库
5.1.3 利用导入改变行为
5.1.4 包的停用
5.2 Java访问指示符
5.2.1 “友好的”
5.2.2 public:接口访问
5.2.3 private:不能接触
5.2.4 protected:“友好的一种”
5.3 接口与实现
5.4 类访问
5.5 总结
5.6 练习

第6章 类再生
6.1 合成的语法
6.2 继承的语法
6.2.1 初始化基础类
6.3 合成与继承的结合
6.3.1 确保正确的清除
6.3.2 名字的隐藏
6.4 到底选择合成还是继承
6.5 protected
6.6 递增开发
6.7 上溯造型
6.7.1 何谓“上溯造型”?
6.8 final关键字
6.8.1 final数据
6.8.2 final方法
6.8.3 final类
6.8.4 final的注意事项
6.9 初始化和类装载
6.9.1 继承初始化
6.10 总结
6.11 练习

第7章 多形性
7.1 上溯造型
7.1.1 为什么要上溯造型
7.2 深入理解
7.2.1 方法调用的绑定
7.2.2 产生正确的行为
7.2.3 扩展性
7.3 覆盖与过载
7.4 抽象类和方法
7.5 接口
7.5.1 Java的“多重继承”
7.5.2 通过继承扩展接口
7.5.3 常数分组
7.5.4 初始化接口中的字段
7.6 内部类
7.6.1 内部类和上溯造型
7.6.2 方法和作用域中的内部类
7.6.3 链接到外部类
7.6.4 static内部类
7.6.5 引用外部类对象
7.6.6 从内部类继承
7.6.7 内部类可以覆盖吗?
7.6.8 内部类标识符
7.6.9 为什么要用内部类:控制框架
7.7 构建器和多形性
7.7.1 构建器的调用顺序
7.7.2 继承和finalize()
7.7.3 构建器内部的多形性方法的行为
7.8 通过继承进行设计
7.8.1 纯继承与扩展
7.8.2 下溯造型与运行期类型标识
7.9 总结
7.10 练习
................