传世经典书丛 

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

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

刘中兵评注

ISBN 978-7-121-13521-7

20116月出版

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

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

Java编程思想(第4版)(评注版)相关推荐

  1. Java编程思想第四版——第十五天

    2012-04-23 121-131/913 Java编程思想第四版--第十五天 5.5.3 终结条件 通常不能指望finalize(),必须创建其他的"清理"方法,并明确的调用它 ...

  2. Java编程思想第四版学习总结

    Java编程思想第四版学习总结 文章目录 Java编程思想第四版学习总结 第 1 章 对象入门 1.1 抽象的进步 1.2 对象的接口 1.3 实现方案的隐藏 1.4 方案的重复使用 1.5 继承:重 ...

  3. Java编程思想 第四版 读书笔记巩固基础,完善知识框架。

    Java编程思想读书笔记 此笔记仅仅是作者的阅读此书时,发现自己错误认识和不牢固的知识,用来完善作者的知识框架,其列出重点不具有参考性,代码也是为了省工作量,简写代码,能看懂即可,语法并不规范 第一章 ...

  4. Java编程思想第四版第九章练习

    这一章讲的是接口, 其中抽象和C++中的纯虚函数特别相似,我会在Java编程思想专栏做完以后,专门写一篇文章来对比C++和Java的不同. 1.修改第8章练习9中的Rodent,使其成为一个抽象类.只 ...

  5. JAVA编程习题及答案_完美版

    JAVA编程习题及答案_完美版 原创 lingwu7 最后发布于2017-08-15 20:01:12 阅读数 10796 收藏 发布于2017-08-15 20:01:12 版权声明:本文为博主原创 ...

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

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

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

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

  8. 关于《Java编程思想》的简单纠正

    今天在看<Java编程思想>(我买的第四版,中文版)这本书的时候,在书第93页部分开头,有这么一段描述: "5.6.1    指定初始化 如果想为某个变量赋初值,该怎么做呢?有一 ...

  9. 【Java编程思想】读书笔记(二)第六章---第十章

    Java编程思想(第四版)学习笔记 第六章---第十章 第六章:访问权限控制 6.2Java访问权限修饰词 第七章:复用类 7.1 组合语法 7.2 继承语法(extends) 7.4.2名称屏蔽(重 ...

最新文章

  1. Powerdesigner逆向工程64位Oracle数据库
  2. 简单说一下什么是回流和重绘
  3. 韩国FPS新网游《火海逃生》新增内容
  4. Gym 101102C---Bored Judge(区间最大值)
  5. HDFS QJM机制分析
  6. iptables 之 REJECT 与 DROP 对比
  7. 8 下半部和推后执行的工作
  8. 7x android 8,内测开启 华为荣耀畅玩7X升级Android 8.0
  9. 如何利用卫星遥感探测浒苔(绿藻)?
  10. 物联网平台thingsboard在Windows上的安装和部署
  11. MySQL-- 单表查询
  12. 机器学习 day5 day6 分类问题实战:判断是否为羊毛党
  13. 指南Java面试常问问题及答案
  14. 关于mikefile 萌新用法
  15. CSS设置背景图片满屏
  16. ASP实现在线发送邮件
  17. 回收站清空的文件怎么恢复?学会这2招,简单又实用
  18. 12款适合小团队协作、任务管理和进度跟踪的在线任务管理的工具推荐?
  19. linux 使用wine_像老板一样使用Linux Wine
  20. Flink CEP 在抖音电商的业务实践

热门文章

  1. 学习ES6路线了解图
  2. python中tile的用法_Python:numpy中的tile函数
  3. lisp调用dcl单选框_AutoLISP单选按钮RADIO_BUTTON设计插入图块
  4. linux 复制文件_使用 rsync 复制大文件的一些误解 | Linux 中国
  5. axios传递数据到java_axios 传输与springboot后台接收数据
  6. java 得到bean的属性_获取javaBean所有属性及类型.doc
  7. html 语音 懒加载,浏览器HTML自带懒加载技术
  8. xlrd读取所有sheet名_如何在Python对Excel进行读取
  9. LeetCode-107二叉树的层次遍历 II-BFS实现
  10. 系统学习深度学习(三十二)--Double DQN (DDQN)