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

本文节选自《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


======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值