O'Reilly Java系列书籍建议阅读顺序(转自蔡学庸)

Learning Java the OReillys Way (Part I) Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话、个人数字助理(PDA)等电子产品,以及智能卡都可以透过 Java 的技术来为人们创造更便利的生活。许多人因此对 Java 感兴趣,想好好学习 Java。 因为讲授 Java 课程的关系,这几年来,不少人问我:怎样才能学
摘要由CSDN通过智能技术生成

Learning Java the O'Reilly's Way (Part I)

Java 技术可以说是越来越重要了,不但可以用在计算机上,甚至连电视等家电用品,行动电话、个人数字助理(PDA)等电子产品,以及智能卡都可以透过 Java 的技术来为人们创造更便利的生活。许多人因此对 Java 感兴趣,想好好学习 Java。

因为讲授 Java 课程的关系,这几年来,不少人问我:怎样才能学好 Java,我给他们的建议很简单 ---『多读 Java 的好书,可以有系统又轻易地获得许多高手的经验』。其实,我说的也是我自己的经验。

『那么,要看什么书呢?』我知道你会这么问。毕竟书店里 Java 的书琳琅满目、怎样从其中选出一本最适合自己的好书,绝对不是一件容易的事。在建议您看什么 Java 书籍之前,让我先为大家做一些简单的分析比较。我认为,Java 原文书可以概略地分成两种:

「主题广泛」型:这类的书经常上千页,厚厚的一本,里面什么主题都有。
「主题专一」型:这类的书通常薄薄的一本,少于五百页,内容只专注在某特定主题。
「主题广泛」型的书,优点是可以让你一次学会很多名词和大概的观念,可是什么都只是浅谈即止,不够深入。 不都说「样样通、样样松」么!还真是有道理。

「主题专一」型的书就不一样了,内容只设定在一个主题,此主题不相关的内容一概不谈(或者只是概略地一提)。 这两类的书各有优缺点,选择哪一种端看您的需求而定。不过,我自己偏好「主题专一」的书,原因是这类的书有下面的好处:

内容深入:你真的相信「21 Days」就可以学通 Java?(我还看过一本书更夸张的,书名上有耸动的「24 Hours」字样。)如果这样的话,Java大师就满街跑了。多读一些 深入的内容,你才有可能超越别人。你可能认为:『我不过是刚入门的初学者,需要知道 Java 广泛的知识,而非深入的知识,所以看「主题广泛」型的 Java书有何不可?』 唔!话说得没错,但我认为这些简介性的知识在许多地方都可轻易取得(特别是在http://www.javasoft.com/),实在不需要去买一本 一千多页的原文书来 K, 现在的原文书也挺贵的,钱可要花在刀口上。

主题属性适合:如果只想学 Java 的网络设计,你当然不会去买一本大堆头的书,其中涉及网络的部分只有区区 50 页,看完之后依旧懵懵懂懂。你应该去买一本 500页,由浅而深,内容完全涵盖所有 Java 网络相关议题的书,看完这样的书,你差不多也可以算是 Java 网络专家了。有了「主题专一」的书,你就可以不必去买一本 95% 的内容对你没帮助的书。你可以想学什么,就挑什么。

新版本推出较快:Java 逐年在改版,书的内容也会跟着翻新,通常「主题专一」型的书比较能快速且完整地反应技术的改变。

许多出版社都有主题专一的 Java 系列,但其中规划最完整、内容最受肯定的就非 O'Reilly 的「 The Java Series」莫属了(可能和他们请了一个优秀的 Java 编辑有关)。 你可以到国外许多线上买书的网站上看看大家对于 O'Reilly「 The Java Series」的评价,就会知道我所言不假。

目前, O'Reilly Java 系列的书共有约二十(还在增加当中),我差不多全买齐了,虽然花了不少钱,但是值得。如果你认真的想学习 Java,我向您推荐 O'Reilly 的「 The Java Series」。套句傅培梅的广告词「教人 Java 三四年,这是我用过最理想的书」。

在后续的文章,我将陆续为大家介绍 O'Reilly Java 系列的每一本书。

 

Learning Java the O'Reilly's Way (Part II)

Java in a Nutshell A Desktop Quick Reference

O'Reilly 的「in a Nutshell」系列书籍向来以简洁、不拖泥带水著称,常常一两页的内容可以抵得过其它书籍十多页的篇幅,在计算机书籍内容灌水风气盛行的今天,O'Reilly 的「in a Nutshell」系列可以算是个异数。「in a Nutshell」系列的每本书虽然薄,但该说的内容一件不少。除了简洁之外,「in a Nutshell」还有一个特色,就是同时具备 入门学习和参考查阅的双重功效。书的内容包含两部分,前面的部分是深入浅出的入门教学,后面的部分是参考资料。

《Java in a Nutshell》第一版是 O'Reilly「in a Nutshell」系列的第一本,目前本书最新的版本是第二版。《Java in a Nutshell》第二版厚度约共六百页,前面的223页是入门 教学,后面的部分是参考手册。如果,你能把本书前面薄薄的223页读懂,你的 Java 内功就会十分扎实。

C/C++ 和 Java 在语言上有许多相似性,所以 C/C++ 的程序员想跨入 Java 的领域比其它语言的使用者占了许多便宜。让我打个比方:C/C++ 的程序员只消翻过一道矮墙就可以从 C/C++ 的王国进入 Java 的领域。对于已经熟悉 C/C++ 的程序员来说,他们最希望能有 Java 书籍直接告诉他们 C/C++ 和 Java之间大大小小的差异,来让他们快速地将他们所惯用的 C/C++ 思维转成 Java 的思考方式,《Java in a Nutshell》正是这样的一本书。虽然后来有不少书籍也定位成 C/C++ 的程序员快速学习 Java 的书,但都没有《Java in a Nutshell》写得精彩完整而小巧。

在写 Java 程序的过程中,免不了要查一些资料,特别是API的用法,这时候,你会发现《Java in a Nutshell》后半部三百多页的参考资料超乎想象地好用,在良好的编排以及索引 的引导之下,你可以轻松地查到你需要的资料。

本书后半部的参考资料部分有两种查阅方式,方法一是透过 package 找 class,再透过 class 找 method或 field,这部分的参考资料在第十七章到第三十二章,通常使用这种方法 的人对于他所欲查询的 API已经有了大概的预期;方法二是完全没有概念时,直接透过第三十三章的字母排列方式找到他所欲查的资料,之后再透过方法一来找到详细的说明。

以前,《Java in a Nutshell》一书是许多人写 Java 程序时必备的速查手册,但现在因为许多 Java 开发工具都提供了方便的线上辅助工具,比方说:Borland JBuilder 可以透过 sensitive help(也就是F1按键)来找到你感兴趣的 API、或透过 Code Inside 之类的神奇功能来提示你某 API 的用法、或透过线上文件(支持hyper-link)来交互查阅,所以现在《Java in a Nutshell》的参考手册的地位已经不再像以前那般地重要了。

本书在 Java 书籍中已经建立了权威的地位,一提起 Java 的好书,大家第一本想到的就是本书,在 Java书籍泛滥的今天,要写出一本这样令大家共同推崇的书实在不容易,而 这也是我对本书作者 David Flanagan 至感钦佩的地方。有读者说:『Flanagan 唯一的缺点是---写的书还不够多』。这真是对一个作家最极至的赞美。

为了达到精简的目的,内容就必须有所取舍,不能大小通吃。比方说,本书就只包含 core API,对于standard extension API(也就是javax package)则完全略去,而 core API 中也有少数的 package 被舍弃在外(作者打算另外写一本《Java Enterprise in a Nutshell》来容纳部分本书未包含的内容)。

同样为了精简的目的,本书相当缺乏完整的程序范例,作者另外写了一本《Java Examples in a Nutshell》来弥补这项不足。《Java Examples in a Nutshell》的程序范例之多, 媲美 The Waite Group 出版的《Java How-to》。我在后续的文章会介绍到《Java Examples in a Nutshell》。

评书的好坏时,不宜讨论到书的价钱,但我实在忍不住要说:这本书的定价实在便宜得夸张,只需美金19.95。如果你常买信息类原文书的话,你会发现大部分的书都是 30 到 60 美金,而且在这些高价位的书籍当中不乏烂书,这更衬托出《Java in a Nutshell》这本书实在「俗搁大碗」。其实,《Java in a Nutshell》就算卖三四倍的价钱我还是 会乖乖掏出钱来买的。

尽管这是一本好书,不过我还是要提醒各位读者,如果你没有 C/C++ 的背景,就想透过本书来学习Java 的话,恐怕你会铩羽而归。在本系列后续的文章中,我会介绍一本不要求读者具备 C/C++ 背景的 Java 入门书。

 

Learning Java the O'Reilly's Way (Part III)

Java Examples in a Nutshell

许多程序设计初学者常有的困扰是:即使查到 API 的用法,也不知道怎么样将这些 API 兜在一起写出想要的程序。其实,个别的 API 作用有限,如何将数个 API 结合起来解决问题才是学习程序设计的重点。对于许多人来说,有一本范例丰富的书可以观摩学习,这比什么都来得重要,也因此,以范例为导向的书向来颇受好评。《Java Examples In a Nutshell》正是这样的一本书。

隔了整整三年,《Java Examples in a Nutshell》一书终于推出第二版。新版本涵盖 JDK 1.3,比起前一个版本多出近六十个主题,共有约一百六十个主题。依据属性,本书内容分成三部份,分别是「Part I:Core Java APIs」、「Part II:Graphics and GUIs」、「Part III:Enterprise Java」,这三部份刚好涵盖了「Java 基础」、「JFC」、以及「Enterprise Java」三大领域,所以此书可以视为《Java in a Nutshell》、《Java Foundation Classes in a Nutshell》以及《Java Enterprise in a Nutshell》的范例教学版本。

此版本和前一版比较大的差异是:

大幅改写安全和加密的部分,因为 Java 在此领域有了不小的变动。l
新增对 GUI 的基本介绍l
绘图的部分以 Java 2Dl 为主轴全部改写。
新增打印的部分l
新增「data transfer」的部分(包括 copy-paste 以及l drag-and-drop)
新增 Servlet 和 JSPl
新增 XML 的部分(包括 SAX、DOM、JAXP、JDOM)l

旧章节的重新安排和改写,以及新章节的加入,使得本书比起第一版更有条理,适合一章一章地循序阅读。除了一般的索引之外,本书第二十章还特别编排了「范例索引」,可用来快速地查阅到需要的范例。本书章标题条列如下:

PART 1: Core Java APIs
Chapter 1. Java Basics
Chapter 2. Objects, Classes, and Interfaces
Chapter 3. Input/Output
Chapter 4. Threads
Chapter 5. Networking
Chapter 6. Security and Cryptography
Chapter 7. Internationalization
Chapter 8. Reflection
Chapter 9. Object Serialization

PART 2: Graphics and GUIs
Chapter 10. Graphical User Interfaces
Chapter 11. Graphics
Chapter 12. Printing
Chapter 13. Data Transfer
Chapter 14. JavaBeans
Chapter 15. Applets

PART 3: Enterprise Java
Chapter 16. Remote Method Invocation
Chapter 17. Database Access with SQL
Chapter 18. Servlets and JSP
Chapter 19. XML
Chapter 20. Example Index

「Part I」对于 Java 语言基础与重要的 API 有很精简的介绍。如果你具有丰富的程序经验,你甚至不需要会 Java 语言,就可以直接透过 Part I 的范例来学会 Java。

「Part II」对于 GUI 程序设计的介绍很精简。本书对 Java 2D 的介绍或许对许多读者来说已经够用,但是本书对 Swing 的介绍绝对不够,毕竟 Swing 是个超级大的主题。

「Part III」是 J2EE 的部分。可惜的是没有介绍 Enterprise JavaBeans(EJB)。比较特别的是,本书有一章介绍了 Java 的 XML 程序设计。

「学一个东西最好的方法就是去用它」。本书有许多范例程序,都是相当精简而具代表性的。如果你是初学者,本书可以让你边做边学,学习效果加倍。即使你不是 Java 初学者,本书也可以提供你速查的功用。以我的经验来说,我懂得 RMI,但是我不可能将 RMI 的程序细节一一记在脑海中,当我要写 RMI 程序时, 我会翻出此书第十六章 RMI 的部分,看看书上详细的作法。

本书也相当适合当作 Java 课程的辅助教材,每个单元后面都有几道程序习题,书上或 O'Reilly 网站上没有这些习题的解答,所以这些习题可供教师当作学生的作业,也可以当作自我练习的题材。

依照 O'Reilly 的惯例,除了极少数的例外,书一律不附光盘片或磁盘,本书也是如此。这虽然会造成部分读者的不便,但其实也有不少好处。通常附上光盘片的书成本提高,售价也会提高;而且 O'Reilly 的网站上都会免费提供相关程序或资料的下载,用下载的方式可以确保读者们取得的程序和资料是最新版本的。以本书来说,我建议各位善用此资源下载程序回来,因为本书中的程序范例相当具代表性,常常只需要做小部分的修改就能符合自己所需,如果能有原始码的档案就可以透过 copy-paste-modify 的方式省下不少敲键盘的时间。

Learning Java the O'Re

  • 1
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值