标题：Java编程思想
书籍简介
作者:（美）埃克尔著 陈昊鹏 译
出版社:机械工业出版社
出版日期:2007-6-1
页码：880 页码
版次：1
装帧：平装
开本：16开
外文书名：thinking in java
内容简介
评价本书赢得了全球程序员的广泛赞誉，即使是最晦涩的概念，在Bruce Eckel的文字亲和力和小而直接的编程示例面前也会化解于无形。从Java的基础语法到最高级特性（深入的面向对象概念、多线程、自动项目构建、单元测试和调试等），本书都能逐步指导你轻松掌握。[1]
从本书获得的各项大奖以及来自世界各地的读者评论中，不难看出这是一本经典之作。本书的作者拥有多年教学经验，对C、C++以及Java语言都有独到、深入的见解，以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念。本书共22章，包括操作符、控制执行流程、访问权限控制、复用类、多态、接口、通过异常处理错误、字符串、泛型、数组、容器深入研究、Java I/O系统、枚举类型、并发以及图形化用户界面等内容。这些丰富的内容，包含了Java语言基础语法以及高级特性，适合各个层次的Java程序员阅读，同时也是高等院校讲授面向对象程序设计语言以及Java语言的绝佳教材和参考书。 [1]特点适合初学者与专业人员的经典的面向对象叙述方式，为更新的Java SE5/6增加了新的示例和章节。
 测验框架显示程序输出。  
 设计模式贯穿于众多示例中：适配器、桥接器、职责链、命令、装饰器、外观、工厂方法、享元、点名、数据传输对象、空对象、代理、单例、状态、策略、模板方法以及访问者。
 为数据传输引入了XML，为用户界面引入了SWT和Flash。
 重新撰写了有关并发的章节，有助于读者掌握线程的相关知识。
 专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。
 支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。
 覆盖了所有基础知识，同时论述了高级特性。
 详细地阐述了面向对象原理。
 在线可获得Java讲座CD，其中包含Bruce Eckel的全部多媒体讲座。
专门为第4版以及Java SE5/6重写了700多个编译文件中的500多个程序。
支持网站包含了所有源代码、带注解的解决方案指南、网络日志以及多媒体学习资料。
覆盖了所有基础知识，同时论述了高级特性。
详细地阐述了面向对象原理。
在线可获得Java讲座CD，其中包含Bruce Eckel的全部多媒体讲座。
编辑推荐
·2003年《Software Development》杂志最佳书籍Jolt大奖
·2003年《Java Developer’s Journal》读者选择最佳书籍奖
·2001年《Java World》编辑选择最佳书籍奖
·2000年《Java World》读者选择最佳书籍奖
·1999年《Software Development》杂志最佳产品奖
·1998年《Java Developer’s Journal》编辑选择最佳书籍奖
图书目录
读者评论
前言
简介
第1章 对象导论
1.1 抽象过程
1.2 每个对象都有一个接口
1.3 每个对象都提供服务
1.4 被隐藏的具体实现
1.5 复用具体实现
1.6 继承
1.6.1 “是一个”（is-a）与“像是一个”（is-like-a）关系
1.7 伴随多态的可互换对象
1.8 单根继承结构
1.9 容器
1.9.1 参数化类型（范型）
1.10 对象的创建和生命期
1.11 异常处理：处理错误
1.12 并发编程
1.13 Java与Internet
1.13.1 Web是什么
1.13.2 客户端编程
1.13.3 服务器端编程
1.22 总结
第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.4.2 基本成员默认值
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 一些标签示例
2.8.5 文档示例
2.9 编码风格
2.10 总结
2.11 练习
第3章 操作符
3.1 更简单的打印语句
3.2 使用Java操作符
3.3 优先级
3.4 赋值
3.4.1 方法调用中的别名问题
3.5 算术操作符
3.5.1 一元加、减操作符
3.6 自动递增和递减
3.7 关系操作符
3.7.1 测试对象的等价性
3.8 逻辑操作符
3.8.1 短路
3.9 直接常量
3.9.1 指数记数法
3.10 按位操作符
3.11 移位操作符
3.12 三元操作符 if-else
3.13 字符串操作符 + 和 +=
3.14 使用操作符时常犯的错误
3.15 类型转换操作符
3.15.1 截尾和舍入
3.15.2提升
3.16 Java没有“sizeof”
3.17 操作符小结
3.18 总结
第4章 控制执行流程
4.1 true和false
4.2 if-else
4.3 迭代
4.3.1 do-while
4.3.2 for
4.3.3 逗号操作符
4.4 Foreach语法
4.5 return
4.6 break和 continue
4.7 臭名昭著的“goto”
4.8 switch
4.9 总结
第5章 初始化与清理
5.1 用构造器确保初始化
5.2 方法重载
5.2.1 区分重载方法
5.2.2 涉及基本类型的重载
5.2.3 以返回值区分重载方法
5.3 缺省构造器
5.4 this关键字
5.4.1 在构造器中调用构造器
5.4.2 static的含义
5.5 清理：终结处理和垃圾回收
5.5.1 finalize()的用途何在
5.5.2 你必须实施清理
5.5.3 终结条件
5.5.4 垃圾回收器如何工作
5.6 成员初始化
5.6.1 指定初始化
5.7 构造器初始化
5.7.1 初始化顺序
5.7.2. 静态数据的初始化
5.7.3. 显式的静态初始化
5.7.4. 非静态实例初始化
5.8 数组初始化
5.8.1 可变参数列表
5.9 枚举类型
5.10 总结
第6章 访问权限控制
第7章 复用类
第8章 多态
第9章 接口
第10章 内部类
第11章 持有对象
第12章 通过异常处理错误
第13章 字符串
第14章 类型信息
第15章 泛型
第16章 数组
第17章 容器深入研究
第18章 Java I/O系统
第19章 枚举类型
第20章 注解
第21章 并发
第22章 图形化用户界面
附录A 补充材料
可下载的补充材料
Thinking in C：Java的基础
Java编程思想 研讨课
Hands-on Java研讨课CD
Thinking in Objects研讨课
Thinking in Enterprise Java
Thinking in Patterns(with Java)
Thinking in Patterns研讨课
设计咨询与复审
附录B 资源
软件
编辑器与IDE
书籍
分析与设计
Python
我的著作列表
索引
作者简介
Bruce Eckel是MindView公司的总裁，该公司向客户提供软件咨询和培训。他是C++标准委员会拥有表决权的成员之一，拥有应用物理学学士和计算机工程硕士学位。除本书外，他还是《C++编程思想》的作者，并与人合著了《C++编程思想 第2卷》（这两本书的英文影印版及中文版均已由机械工业出版社引进出版）及其他著作。他已经发表了150多篇论文，还经常参加世界各地的研讨会并进行演讲。
从本书获得的各项大奖以及来自世界各地的读者评论中，不难看出这是一本经典之作。本书作者有多年的教学经验，对C、C++、Java语言都有独到、深入的理解。因此他非常了解如何教授Java语言这门课程，也非常明白语言教学中的难点及人们的困惑。作者以通俗易懂及小而直接的示例解释了一个个晦涩抽象的概念，精心选取“对读者理解Java语言来说最为重要”的部分编写成书。同时又在随书光盘中提供了大量参考材料—这也是本书绝对物超所值的地方。
随书光盘没有包含本书的源代码，而是提供了大量作者讲授的讨论课内容及本书的前2版内容。
本书内容丰富—从Java的基础语法到最高级特性，适合各层次的Java程序员阅读，同时也是高等院校讲授面向对象程序设计语言及Java语言的绝佳教材。
读者评价
· 每个Java程序员都应该反复研读《Think in Java》，并且随身携带以便随时参考。书中的练习颇具挑战性，而有关集合的章节已臻化境！本书不仅帮助我通过了Sun Certified Java Programmer考试，而且它还是我遇到Java问题时，求助的首选书籍。
——Jim Pleger, Loudoun郡（弗吉尼亚）政府
· 这本书比我见过的所有Java书都要好得多。循序渐进……非常完整，并搭配恰到好处的范例，睿智而不呆板的解说……这使本书的品质比别的书“超出了一个数量级”。与其他Java书相比，我发现本书考虑非常周全、前后一致、理性坦诚、文笔流畅、用词准确。恕我直言，这是一本学习Java的理想书籍。
——Anatoly Vorobey, 以色列海法Technion大学
· 在我所见过的程序设计指南中（无论何种语言），这绝对是最好的一本。
——Joakim Ziegler, FIX系统管理员
· 感谢您这本精彩的、令人愉快的Java书。
——Dr. Gavin Pillay, 登记员, 南非爱德华八世医院
· 再次感谢您这本杰出的书。作为一名不用C语言的程序员，我曾经感到（学习Java）步履维艰，但是您的书让我一目了然。能够一开始就理解底层的概念和原理，而不是通过反复试验来自己建立概念模型，真是太棒了。我希望能在不久的将来参加您的讨论课。
——Randall R. Hawley, 自动化工程师, Eli Lilly公司
——Ravindra Pai, Oracle 公司, SUNOS 产品线部门
· 我见过的最好的Java书！您做了一项了不起的工作。您的深度令人赞叹，出版的时候，我一定会购买一本。我从1996年10月就开始学习Java，其间也读过好几本这方面的书，但我觉得您这本才是“必读书”。最近几个月，我一直集中精力于一个完全用Java开发的产品。您的书帮我夯实了某些不牢固的知识点，并拓展了我的知识面。我甚至在面试签约者时引用书中的内容，作为参考的依据。通过问一些我从书中学到的知识，来判断他们对Java的理解程度（例如，数组与Vector的区别）。您的书真是伟大！
——Steve Wilkinson, 资深专家, MCI 电信公司
· 伟大的书。迄今为止我见过的最佳Java书籍。
——Jeff Sinclair, 软件工程师, Kestral 计算技术公司
? 感谢您的《Thinking in Java》。早就应该有人把仅仅介绍语言的教程编写成富有思想、分析透彻的入门指南，而不是局限于“某个公司”的语言。我阅读过许多这方面的书，但只有您和Patrick Winston的作品给我印象深刻。我已经向客户推荐这本书。再次谢谢您。
——Richard Brooks, Java 咨询顾问, 达拉斯Sun专业服务部门
· Bruce，您的书真是太棒了！您的讲解清晰明确。通过这本迷人的书，我获得了大量Java知识。练习题也同样令人着迷，它们对巩固各章阐述的知识起到了很好的效果。我期待您的更多作品。对您的这本著作致以谢意。阅读了《Thinking in Java》之后，我的代码质量大有改善。为此我要感激您，我相信，维护我的代码的程序员同样也会感激您。
——Yvonne Watkins, Discover 技术公司
媒体评论
我见过的最好的Java书！您做了一项了不起的工作。您的深度令人赞叹，出版的时候，我一定会购买一本。我从1996年10月就开始学习Java，其间也读过好几本这方面的书，但我觉得您这本才是“必读书”。最近几个月，我一直集中精力于一个完全用Java开发的产品。您的书帮我夯实了某些不牢固的知识点，并拓展了我的知识面。我甚至在面试签约者时引用书中的内容，作为参考的依据。通过问一些我从书中学到的知识，来判断他们对Java的理解程度（例如，数组与Vector的区别）。您的书真是伟大！ 
Steve Wilkinson, 资深专家, MCI 电信公司 
每个Java程序员都应该反复研读《Think in Java》，并且随身携带以便随时参考。书中的练习颇具挑战性，而有关集合的章节已臻化境！本书不仅帮助我通过了Sun Certified Java Programmer考试，而且它还是我遇到Java问题时，求助的首选书籍。 
——Jim Pleger, Loudoun郡（弗吉尼亚）政府 
这本书比我见过的所有Java书都要好得多。循序渐进……非常完整，并搭配恰到好处的范例，睿智而不呆板的解说……这使本书的品质比别的书“超出了一个数量级”。与其他Java书相比，我发现本书考虑非常周全、前后一致、理性坦诚、文笔流畅、用词准确。恕我直言，这是一本学习Java的理想书籍。 
——Anatoly Vorobey, 以色列海法Technion大学 
在我所见过的程序设计指南中（无论何种语言），这绝对是最好的一本。 
——Joakim Ziegler, FIX系统管理员 
感谢您这本精彩的、令人愉快的Java书。 
——Dr. Gavin Pillay, 登记员, 南非爱德华八世医院 
再次感谢您这本杰出的书。作为一名不用C语言的程序员，我曾经感到（学习Java）步履维艰，但是您的书让我一目了然。能够一开始就理解底层的概念和原理，而不是通过反复试验来自己建立概念模型，真是太棒了。我希望能在不久的将来参加您的讨论课。 
——Randall R. Hawley, 自动化工程师, Eli Lilly公司 
我见过的计算机著作中，这是最好的一本。 
——Tom Holland 
这是我读过的编程语言书中最棒的一本……有关Java的书中最棒的一本。 
——Ravindra Pai, Oracle 公司, SUNOS 产品线部门 
我见过的最好的Java书！您做了一项了不起的工作。您的深度令人赞叹，出版的时候，我一定会购买一本。我从1996年10月就开始学习Java，其间也读过好几本这方面的书，但我觉得您这本才是“必读书”。最近几个月，我一直集中精力于一个完全用Java开发的产品。您的书帮我夯实了某些不牢固的知识点，并拓展了我的知识面。我甚至在面试签约者时引用书中的内容，作为参考的依据。通过问一些我从书中学到的知识，来判断他们对Java的理解程度（例如，数组与Vector的区别）。您的书真是伟大！ 
——Steve Wilkinson, 资深专家, MCI 电信公司 
伟大的书。迄今为止我见过的最佳Java书籍。 
——Jeff Sinclair, 软件工程师, Kestral 计算技术公司 
感谢您的《Thinking in Java》。早就应该有人把仅仅介绍语言的教程编写成富有思想、分析透彻的入门指南，而不是局限于“某个公司”的语言。我阅读过许多这方面的书，但只有您和Patrick Winston的作品给我印象深刻。我已经向客户推荐这本书。再次谢谢您。 
——Richard Brooks, Java 咨询顾问, 达拉斯Sun专业服务部门 
Bruce，您的书真是太棒了！您的讲解清晰明确。通过这本迷人的书，我获得了大量Java知识。练习题也同样令人着迷，它们对巩固各章阐述的知识起到了很好的效果。我期待您的更多作品。对您的这本著作致以谢意。阅读了《Thinking in Java》之后，我的代码质量大有改善。为此我要感激您，我相信，维护我的代码的程序员同样也会感激您。 
——Yvonne Watkins, Discover 技术公司