Java编程思想(第4版)(评注版)-编程知识网

传世经典书丛 

Java编程思想(第4版)(评注版) 

(美)埃克尔(Eckel, B.)著

刘中兵评注

ISBN 978-7-121-13521-7

20116月出版

    价:108.00

16

756

本书作者拥有多年教学经验,对CC++以及Java语言都有独到、深入的见解,书中以通俗易懂且小而直接的示例阐释了一个个晦涩抽象的概念,是一本当之无愧的经典之作。本评注版讲解了Java设计、语法和库的各个方面,包括Java的运算符、控制逻辑、构造、回收、重用、接口、内部类、存储、异常、字符串、类型、泛型、数组、容器、I/O、注释、并发等内容。

对于国外技术图书,选择翻译版还是影印版,常常让人陷入两难的境地。本评注版力邀国内资深专家执笔,在英文原著基础上增加中文点评与注释,旨在融合二者之长,既保留经典的原创文字与味道,又以先行者的学研心得与实践感悟,对读者阅读与学习加以点拨、指明捷径。

经过评注的版本,更值得反复阅读与体会。希望这本书能够帮助您跨越Java的重重险阻,领略高处才有的壮美风光,做一个成功而快乐的Java程序员。

评注者序

Thinking in Java的渊源

学习Java的道路好比西天取经,Java就是要取得的真经,我们都是去往Java之路的圣徒。

学习Java不仅要经历九九八十一难,更要理解Java这本圣经的精髓。大家都觉得Java之路不好走,因为它不仅仅是Java,还有无数的技术,如JSPServletJavaBeanJ2EEStrutsSpringHibernate、数据库SQLSOA分布式、缓存、JVMEclipseTomcatHTTPJSON等等,它们组成了取经道路上的九九八十一难。众多技术,围绕的精髓是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也提供了各种读写的包装类。本书通过大量实例来演示这些类的使用方法和应用场景。

多线程是与单线程比较而言的,本书从基本的ThreadRunnable的使用讲起,深入且全面讲解了线程的休眠、优先级、Daemon、线程的异常处理、资源共享、线程的控制、与其他线程的协作、死锁等,并讲解了Java中使用的一些线程工具类。

5部分  高级特性:类型、泛型、枚举、注释

书中从Class类、cast、静态分析、动态分析、动态代理、Mock等各方面讲解类的RTTI解析,使用Generic实现对Java的扩展。JDK 5.0通过名为注释(Annotation)的新功能,将一个更通用的元数据工具合并到核心Java语言中。对于开发者来说,不仅可以使用JDK内置的注释,还可以使用第三方提供的强大注释功能,比如单元测试、EJBHibernate等,还可以自定义注释。

我的建议

由于AWTSwing目前在实际应用中比例不高,并且擅长界面编程的中文图书比比皆是,因此就删除了图形化编程GUI一章。另外,本书开头的两章,即“Introduction to Objects”“Everything Is an Object”没有收入本书,但读者可从网上下载加了评注的这些内容,网址是http://www.broadview. com.cn/13521

还请读者留意以下两点:

1)由于本评注版经重新编排,章节顺序与原著不尽相同,加之部分章节有所节略,因此书中涉及引用章节之处与图书现状略有出入。由此给读者带来的不便,还请谅解。

2)各章练习序号后的小括号中的文字,代表本练习的难度等级(用1~10表示)。

最后,在您阅读本书时,我有两点建议:

对经典的分析、代码及时做批注,多做对比和总结。

机编写运行书中的经典实例,尝试不同的运行结果,分析代码的用意。

对书中的实例举一反三、反复推敲,分析更多的实际应用场景。

只有用心去读、去体会、去实践,才能够真正理解Java编程中的思想。

本评注版由刘中兵、陈景春、周同、刘中敏、陈万珍、刘剑、李瑞霞、李建海、李金刚、刘中丽执笔,撰写相关中文评注。行文若有不妥之处,敬请广大读者提出宝贵意见和建议。

 

刘中兵     

2011420于北京

 

 

转载于:https://blog.51cto.com/bvbroadview/611089