评注者序 

与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日于北京

本文节选自《Java编程思想(第4版)(评注版)》一书。

《Java编程思想(第4版)(评注版)》一书已由电子工业出版社正式出版,本书由刘中兵评注

购买地址:

当当:

http://product.dangdang.com/product.aspx?product_id=21106091&ref=search-1-pub

卓越:

http://www.amazon.cn/Java%E7%BC%96%E7%A8%8B%E6%80%9D%E6%83%B3-%E5%88%98%E4%B8%AD%E5%85%B5/dp/B0055T5XVW/ref=sr_1_1?ie=UTF8&qid=1308711461&sr=8-1

中国互动出版网:

http://product.china-pub.com/194002

Java编程思想评注者序相关推荐

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

    传世经典书丛  Java编程思想(第4版)(评注版)  (美)埃克尔(Eckel, B.)著 刘中兵评注 ISBN 978-7-121-13521-7 2011年6月出版 定    价:108.00元 ...

  2. 33.JAVA编程思想——JAVA IO File类

    33.JAVA编程思想--JAVA IO File类 RandomAccessFile用于包括了已知长度记录的文件.以便我们能用 seek()从一条记录移至还有一条:然后读取或改动那些记录. 各记录的 ...

  3. 【java】《java编程思想》 读书笔记

    之前主要用的C++的比较多,之前花了快2个月的实际认真系统全面的学习了以下java的基础语法,<java编程思想>这本书翻译水平确实不是很好,很多话读着会比较拗口.推荐读之前,先去网上搜索 ...

  4. Java编程思想学习笔记4 - 序列化技术

    今天来学习下Java序列化和反序列化技术,笔者对<Java编程思想>中的内容,结合网上各位前辈的帖子进行了整理和补充,包括: 序列化概述 Java原生序列化技术 Hessian序列化技术 ...

  5. 《JAVA编程思想》学习笔记:第16章(数组)

    目录 Java编程思想(一)第1~4章:概述 Java编程思想(二)第5章:初始化和清理 Java编程思想(三)第6章:访问权限 Java编程思想(四)第7章:复用类 Java编程思想(五)第8章:多 ...

  6. java编程思想--概述

    之前主要用的C++的比较多,之前花了快2个月的实际认真系统全面的学习了以下java的基础语法,<java编程思想>这本书翻译水平确实不是很好,很多话读着会比较拗口.推荐读之前,先去网上搜索 ...

  7. 35.JAVA编程思想——JAVA IO StreamTokenizer

    35.JAVA编程思想--JAVA IO StreamTokenizer 尽管StreamTokenizer并不是从 InputStream或 OutputStream衍生的,但它只随同InputSt ...

  8. 《Java编程思想》读书笔记(二)

    三年之前就买了<Java编程思想>这本书,但是到现在为止都还没有好好看过这本书,这次希望能够坚持通读完整本书并整理好自己的读书笔记,上一篇文章是记录的第一章到第十章的内容,这一次记录的是第 ...

  9. 类的包访问权限:《Java编程思想》中一段话的困惑

    类的包访问权限:<Java编程思想>中一段话的困惑 在<java编程思想第三版>(陈昊鹏 饶若楠等译)的第五章隐藏具体实现中,5.4节的最后一段话是: "正如前面所提 ...

  10. 译者招募 | 《Java编程思想》作者Bruce Eckel新作On Java 8

    硅谷创业之父Paul Graham曾在<黑客与画家>中写道,"判断一种语言是否流行的条件是,一种免费的实现,一本相关书籍,以及语言所依附的计算机系统." 当然,Java ...

最新文章

  1. 遮罩层中的相对定位与绝对定位(Ajax)
  2. 余承东感慨Mate系列:太艰辛了,质疑声太大
  3. linux NVMe驱动总结
  4. 关于ATM机的JAVA实验报告书,Java实习报告(ATM自动柜员机)
  5. php999换算人民币计算器,将cm换算为px (厘米换算为像素)
  6. java 跳跃表_你真的了解跳跃表吗
  7. 数据结构:弗洛伊德算法(最短路径)图文详解
  8. c语言将首字母变大写,c语言问题 将首字母变为大写
  9. 第八届中国信息安全大会在京召开
  10. ES6(ECMASript 相关介绍,ECMASript 6 新特性---let,const关键字,变量的解析赋值,模板字符串,箭头函数,rest参数,spread扩展运算符,Symbol)
  11. 力天创见客流分析功能需求
  12. Eclipse4.4.2(luna) JDK1.8.0_212 PyDev5.2.0 Python2.7
  13. regsvr32 命令使用和regsvr32 dll失败原因介绍
  14. 抖音矩阵系统定制开发,抖音矩阵系统源码独立部署、
  15. 日本人为何能拿这么多诺贝尔奖
  16. R软件与RStudio安装(版本R-4.2.2)Windows10
  17. 团体程序设计天梯赛-L2组
  18. unity导出android,可以显示出MMD模型,但是不能播放动作。求解答
  19. MapGis前端开发笔记一
  20. 成绩录入时的及格与不及格人数统计

热门文章

  1. 全双工音频播放器在c#中使用waveIn / waveOut api
  2. WinForm与WPF下跨线程调用控件
  3. 一些用xib加载主界面的过程
  4. new Image().src资源重复请求问题
  5. 005-OpenStack-网络服务
  6. pytest特色与实用插件
  7. POJ 3360 H-Cow Contest
  8. D3之svg transform 与 css3 transform 区别与联系
  9. 【转】Mac端包管理工具——Homebrew简介及安装
  10. WPF Rendering 2(硬件加速、软件加速)