传世经典书丛
Java编程思想(第4版)(评注版)
(美)埃克尔(Eckel, B.)著
刘中兵评注
ISBN 978-7-121-13521-7
2011年6月出版
定 价:108.00元
16开
756页
内 容 简 介
本书作者拥有多年教学经验,对C、C++以及Java语言都有独到、深入的见解,书中以通俗易懂且小而直接的示例阐释了一个个晦涩抽象的概念,是一本当之无愧的经典之作。本评注版讲解了Java设计、语法和库的各个方面,包括Java的运算符、控制逻辑、构造、回收、重用、接口、内部类、存储、异常、字符串、类型、泛型、数组、容器、I/O、注释、并发等内容。
对于国外技术图书,选择翻译版还是影印版,常常让人陷入两难的境地。本评注版力邀国内资深专家执笔,在英文原著基础上增加中文点评与注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者阅读与学习加以点拨、指明捷径。
经过评注的版本,更值得反复阅读与体会。希望这本书能够帮助您跨越Java的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的Java程序员。
评注者序
与Thinking in Java的渊源
学习Java的道路好比西天取经,Java就是要取得的真经,我们都是去往Java之路的圣徒。
学习Java不仅要经历九九八十一难,更要理解Java这本圣经的精髓。大家都觉得Java之路不好走,因为它不仅仅是Java,还有无数的技术,如JSP、Servlet、JavaBean、J2EE、Struts、Spring、Hibernate、数据库SQL、SOA分布式、缓存、JVM、Eclipse、Tomcat、HTTP、JSON等等,它们组成了取经道路上的九九八十一难。众多技术,围绕的精髓是Java。
在学习Java的道路上,我也经历过九九八十一难。我通过编写《Java高手真经》对Java道路上的层层技术做了一个自认为完整的总结,也是对自己步入Java世界以来的种种所见所闻所感的记录和升华。但此时,对Java我有种被掏空的感觉。因为,我觉得自己对Java的精髓理解得还是不够。
偶然的机会接到博文视点的邀约,为这本《Java编程思想》(Thinking in Java)的英文版本做点评。尽管我写过很多技术类的书,但对于这种圣经式的经典著作,借用时下最流行的一句话,内心有一点“忐忑”J。因为,对经典著作做的点评,必须是点睛之笔,对原文要能够画龙点睛。想到这里,内心就更加忐忑了!为此,我抱着学习交流的心态重读了这本书。
刚学习Java时,往往会经资深人士推荐说:“读这本《Java编程思想》才是学真正的Java,国人所著太浅!”于是怀着崇拜之情,读之,傻眼,1000多页、大量本质的分析,再加上蹩脚的英语,读之皮毛矣!从此也就束之高阁。
何时应该读这本书
李彦宏关于互联网的发展曾说过:“时机很重要,进去太早会饿死,太晚就没有机会了。”实际上这句话在这里也适用,太早读这本书会难以理解,太晚你会后悔为什么才看到这本书。这是因为,正如书名所言,它讲解的是Java编程的内在思想,只有拥有了一定Java编程基础和开发经验后,读它才是对Java理解的升华!
因此,这本书最大的作用不是让你“知其然”,而是让你“知其所以然”!
如何读这本书
本书原英文版涵盖了Java设计、语法和库的各个方面,包括Java的运算符、控制逻辑、构造、回收、重用、多态、接口、内部类、存储、异常、字符串、类型、泛型、数组、容器、I/O、注释、并发、图形GUI。原英文版是按美国人的习惯散列排列的,本书为了更加一目了然,更加符合国人的思维方式,将这些章节分为五个大的部分,每一部分都涵盖了深入分析的独家内容。
第1部分基本语法:运算符、控制逻辑
运算符和控制逻辑是任何一门语言的最基础语法,Java参考了C++的优点,扬长避短,因此它的运算符也基于C++,但在某些方面进行了简化和改进。熟悉C++将会对本部分轻车熟路。Java中的控制语句共提供了如下几个关键字:if/else/while/do-while/for/return/break/continue/switch。虽然有goto,但是不要使用,它会使代码混乱。在Java中已经摒弃了goto语句。
第2部分面向对象:对象的创建与销毁、访问控制、重用、接口、内部类、异常
本书是关于类的初始化和销毁讲解最为完美的一本书,细致、全面、易懂。访问控制专门开辟了一章,对于类和包的访问控制关系讲解小巧到位。要让每个人编写的程序能够为他人所用,首先是类的包结构清晰,其次是代码中的函数包装清晰。
第3部分数据存储:字符串、数组、存储、容器
java.util包中提供了纷繁复杂的容器类,包括集合类Collection(包括Queue先进先出队列、List允许重复的有序列表、Set不允许重复的集合)和映射类Map(键值对)。本书深度分析了基于这些接口的各种实现类的使用、工作原理。“Containers in Depth”一章是讲解Java容器类最深入的部分,它会告诉你何时应该使用哪些容器、哪些是最有用的、为什么使用以及怎么使用。
第4部分核心功能:输入输出、并发
I/O提供了Java与外部系统进行通信的基础库,包括控制台、文件、网络。这些是I/O需要涉及的方方面面。输入输出的方式包括顺序读取、随机读取、缓存、二进制、字符、行读取、字节读取等等,因此I/O也提供了各种读写的包装类。本书通过大量实例来演示这些类的使用方法和应用场景。
多线程是与单线程比较而言的,本书从基本的Thread、Runnable的使用讲起,深入且全面讲解了线程的休眠、优先级、Daemon、线程的异常处理、资源共享、线程的控制、与其他线程的协作、死锁等,并讲解了Java中使用的一些线程工具类。
第5部分高级特性:类型、泛型、枚举、注释
书中从Class类、cast、静态分析、动态分析、动态代理、Mock等各方面讲解类的RTTI解析,使用Generic实现对Java的扩展。JDK 5.0通过名为注释(Annotation)的新功能,将一个更通用的元数据工具合并到核心Java语言中。对于开发者来说,不仅可以使用JDK内置的注释,还可以使用第三方提供的强大注释功能,比如单元测试、EJB、Hibernate等,还可以自定义注释。
我的建议
由于AWT和Swing目前在实际应用中比例不高,并且擅长界面编程的中文图书比比皆是,因此就删除了图形化编程GUI一章。另外,本书开头的两章,即“Introduction to Objects”和“Everything Is an Object”没有收入本书,但读者可从网上下载加了评注的这些内容,网址是http://www.broadview. com.cn/13521。
还请读者留意以下两点:
(1)由于本评注版经重新编排,章节顺序与原著不尽相同,加之部分章节有所节略,因此书中涉及引用章节之处与图书现状略有出入。由此给读者带来的不便,还请谅解。
(2)各章练习序号后的小括号中的文字,代表本练习的难度等级(用1~10表示)。
最后,在您阅读本书时,我有两点建议:
对经典的分析、代码及时做批注,多做对比和总结。
上机编写运行书中的经典实例,尝试不同的运行结果,分析代码的用意。
对书中的实例举一反三、反复推敲,分析更多的实际应用场景。
只有用心去读、去体会、去实践,才能够真正理解Java编程中的思想。
本评注版由刘中兵、陈景春、周同、刘中敏、陈万珍、刘剑、李瑞霞、李建海、李金刚、刘中丽执笔,撰写相关中文评注。行文若有不妥之处,敬请广大读者提出宝贵意见和建议。
刘中兵
2011年4月20日于北京