好书,用心看了才知道(另外谈一下青鸟那本)
2006-08-27
我初学java,正在青鸟听课.
因为觉得青鸟的书写的太肤浅,所以就开始看thinkingInJava.
现在已经看到第6章了(期间也跳跃到第九章异常瞅了瞅,但看不懂又翻回来了).
看书时,几乎每一个例子我都实验了一边,并作出各种改动以判断自己的想法是否正确. 除了超出我理解范围的东东(比如"垃圾回收器的工作原理"),每一个概念我都认真思考,知道弄懂它(当然是指在一定程度上).
我发现这本书真是蕴涵着无穷的宝藏,特别是其中的例题,几乎每做一道我都能获得心得.比如alasing效应,toSring()的用法等等.
书里对于概念的阐述也很详细,很彻底.比如其中有一段对重载的解释,(见我下面笔记片段)
" 为什么不能用返回值来重载方法:
当你调用一个方法而不管心它的返回值,只想利用其“副作用”时,这叫做“calling a method for its side effect”
如果你只写了 method(),而不是写下如:int num = method(),系统将无法根据返回值来区分方法"
还有如下笔记:
" 四,方法调用的内部形式:
有如下代码:
ref1.meth();
ref2.meth();
编译器怎样确定你是用那个引用调用的meth方法呢?
其实编译器将ref作为一个参数传给了方法,这样,以上两句就变成了
class.meth(ref);
class.meth(ref); "
这些都是在别的书上看不到的,我始终坚信一点:别人知其然,我还要只其所以然.这样才能比别人强,这本书就很好的阐述了java的"所以然".
作者的语言也不乏轻松幽默之处,这使我看的时候不会觉得太枯燥
另外,我还想提提译者,因为我是第二版和第三版对照起来看的,所以想对两本书的翻译比较下,我觉得第二版不如第三版.
不敢诽谤侯捷的翻译能力和技术功底(深入浅出MFC虽然每看过,但大名总还是知道的).我想这是两次翻译的缘故吧—从english到台湾话,再到大陆话.台湾那边的语言习惯和大陆还是有很多不同的,特别是专用词汇,几乎不可理解.
总之,这是一本公认的不容质疑的好书,她的经典已完全不需要靠我们的评论来支撑.隔壁的评论简直就是无稽之谈.
但话说回来,她不太适合新手来读,因为书中涉及了太多的底层机制,还有其中的很多"经验之谈"也是要读者有了一定的经验后才能体会到的(其中甚至还有设计模式的东东),但不管怎样我还是回义无返顾的读下去的.
最后,为了避免隔壁的同志混淆视听,偶再提提青鸟的java书.
青鸟的java书简单,实用,很适合只有一点c基础甚至零起点的人看
但千万别以为只看它就行了,这其实是一本读了一遍,作完了上面的习题就可以扔掉的书.而且我可以从上面找到很多错误,有些甚至低级到不能忍受.
呵呵,想去青鸟的同学看到这里不要怕了,其实偶看书很细致滴,偶找到的错误你们不一定会注意到,将就着看也还行^_^
好了,就整到这儿吧,加油加油,努力努力!