内 容 简 介本书是作者林信良本人近几年来学习Java的心得笔记,结构按照作者的学习脉络依次展开,从什么是Java、如何配置Java开发环境、基本的Java语法到程序流程控制、管理类文件、异常处理、枚举类型、泛型、J2SE中标准的API等均进行了详细介绍。本书还安排了一个“文字编辑器”的专题制作。此外,Java SE 6的新功能,对Java lang等套件的功能加强,以及JDBC4.0、Apache Derby纯Java数据库等新增功能,本书也都予以介绍。本书门槛很低,只要您了解Windows基本操作,无须有其他程序语言的基础,甚至没有接触过Java,都可以通过本书扎扎实实地学习Java。而对于一些曾经学习过Java,但概念和基础仍不扎实的读者,本书也准备了一些面向对象的观点与进阶的议题可供参考。
在网络上写文章是我学习新事物的一种方式。从2003年的第一篇文章开始,我就发现写作是一种极佳的学习方式,这三年多以来,在学习新事物时,往往以为自己懂了,但总是在试着将所学写成文章时,才发现自己根本就不了解。在写文章的时候必须搞清楚自己学了什么?想写什么?也因此经常可以发现自己还有什么地方没有学懂、没有学透。 在网络上写文章是我记录所学的一种方式。我的忘性总是大于记性,对于一些细节性的知识,常常是学了不久之后就仅记得一些模糊的轮廓,所以在学习过程中留下文章对我来说是很必要的。因为文章内容就是我学习的笔记,有我学习的脉络,即使因时日而遗忘了一些细节,从文章当中复习总是可以让我快速地找回知识的细节。 在网络上写文章是我接受他人指导的一种方式。在学习的过程中难免有领悟或理解错误的时候,接受他人的指导是必要的。对于写好的文章我总会将它放到网络上与网友们分享讨论,也借此发现自己文章中的错误并加以改正。 Java Gossip是我学习Java的心得笔记,这份文件在两年多以来不断地修改与扩充,正如自己从最初对Java的一知半解,经过这三年多不断地纠正观点与学习,随着文件的不断校正与增加,我对Java的了解也就更深了一层。 随着J2SE 5.0的问市,我不久前也将Java Gossip文件内容大幅更新,并针对J2SE 5.0的内容加以扩充。这期间在寻找J2SE 5.0新特性的文章或书籍时,发现这类的文章或书籍还不多,当时就有将Java Gossip的内容编写成书的念头。 虽然现在有相当多的电子书或网络文章,但对于一些好的文章或电子书籍,我总是会将之打印下来,好处之一是可以划线标注,而且不用长时间盯着计算机屏幕。由于Java Gossip在更新后增加了不少内容,我心想或许有一些网友也有着与我相同的需求,于是终于决定将编写成书的念头化为行动。 这本书的内容大约以我网站上的Java Gossip文章为六成的基础,而四成左右为新增内容。新增的内容主要是针对文章中的一些观点增加程序实例、图片说明,或者是针对初学者作更多的内容讲解。 这本书不是一本“Java轻松入门”的书,也不是一本“快快乐乐学Java”的书,它是我两年多来入门Java的心得,我希望它可以成为读者扎扎实实入门Java的书。由于Java Gossip文章中有一些程序配置细节与高级议题,所以我经常会查阅网站上的Java Gossip文章,希望这本书也能成为读者日后经常翻阅参考的书。 林信良 再 版 前 言 每次推出Java的新版本,市面上相关的入门图书,总要跟着更新再版一次,然而并不是每次Java的新功能都适用于初学者,更新再版时如何修改,是不是只换换封面、图片或正文中的软件版本号,然后再推向市面重新销售。这个问题在Java学习笔记面临再版修改时,着实让我伤透了脑筋。 自《Java JDK 5.0学习笔记》上市以来,在网络上所开放的文件中,陆续有些修改和新文章,这是本书修改的内容来源之一。另一方面,针对《Java JDK 5.0学习笔记》中提到的几个主题,Java JDK 6中与这些主题相关的新功能,自然也是本书应该提到的内容。 在我个人的价值观中,一味追求新功能并不是正确的学习方式,在反复回味已学得的事物中,获得对这些事物新的体会与应用,才是学习时真正该持有的态度,也是学习时真正的成果之一。 以这个观念为出发点所想到的是,实际课堂教学时所得到的一些反馈经验。毕竟,自学与教学在某些程度上是不同的,Java学习笔记原本是我自己的自学笔记,个人学习经验的比重很大,然而经验中自己认为不是问题的地方,在实际的课堂教学中,却发现学员会有相关的疑问。 在实际解答学员的相关疑问时所得到的反馈,我将之融入这本书中,目的是想在书中增加更多人的学习经验,希望让阅读本书的初学者,在学习Java时能少走许多弯路,得到更正确的概念,以及更多的前人经验。 林信良2007/2/31 导 读 本书定位 本书针对的读者群为了解Windows基本操作,而不用有其他程序语言基础的读者。由于本书中有一些面向对象观点与高级主题,所以针对的读者群也包括了曾经学习过Java,但概念或基础仍不扎实的读者。 使用软件版本 全书中所有的范例程序代码都是使用Windows纯文本文件编写的,在“命令提示符”(文字模式操作)下编译与运行程序。编译与运行程序所使用的环境是Sun JDK 6,并使用Java SE 6的语法特性与标准类。 章节安排 针对学校的Java课程,建议着重第1~12章的讲解,这12章涵盖了自J2SE 5.0以来的新语法与新特性,第13~18章是一些Java SE中标准API的介绍,建议学生自行阅读。 对于没有接触过程序语言,或是没有接触过Java的读者,第1~3章是必读的章节。内容从了解什么是Java开始、配置Java开发环境到基本的语法与程序流程控制入门。对于一些操作性的介绍,光盘中还有一些简单的多媒体资料可供学习之用。 第4~6章则从对象(Object)开始认识Java,读者可以了解基本类与对象的不同点,而经常被忽略的数组与字符串,是这部分讲解的重点,建议详细阅读。 第7章与第8章介绍Java对面向对象的支持语法,介绍顺序主要按照面向对象的3个特性:封装(Encapsulation)、继承(Inheritance)和多态(Polymorphism)。面向对象观点是Java的学习重心所在,也是最难体会和入门的部分,建议详细阅读。 第9章介绍了类文件的管理,主要了解内部类的.class命名方式,以及组件管理机制;第10章介绍异常处理(Exception Handling),主要了解try...catch...finally语法的使用,以及异常对象的继承架构。第9章与第10章要运用得好,与经验有关,初学者了解语法即可,日后可从各种实例中来体会。 第11章介绍枚举类型(Enumerated Types),第12章介绍泛型(Generics),两者都是自J2SE 5.0以来增加的功能特性,初学者或许较少应用,建议打好前10章的基础再优先考虑。 第13~18章是Java SE中标准API的介绍,挑选了对象容器(Container)、输入/输出、线程(Thread)、反射(Reflection)和Annotation等主题来讨论。这些主题基本上在各个领域都应用得到,如果要给初学者学习建议,我建议先了解对象容器、输入/输出以及反射中的类加载器。因为前两者应用的机会较多,而了解类加载器有助于了解一些Java的运行原理。 第19章为专题内容,目的是让读者了解如何将各种API组成实际的应用程序,主题选择的是文字编辑器,其中附带了一些Swing窗口程序设计的基础。老师可以用该章内容讲解专题制作时要注意的事项,并进一步鼓励学生基于该章所完成的文字编辑器,继续增加、完备它的功能。 第20章为JDBC的介绍,直接介绍JDBC的概念与API的使用,如果您还不熟悉任何数据库的操作,那么可以参考附录C中关于MySQL的入门介绍。 第21章介绍Java SE 6的新功能,由于Java SE 6的主要新功能都是一些较高级的主题,初学者暂时用不到这些新增功能,所以第21章仅挑选一些与本书提到的主题相关的Java SE 6新功能来加以介绍。 提示框 在本书中会出现两种提示框: 写程序就像写文章一样,如何将程序写得简洁易懂,其实有些规律可循,在这个对话框中会给读者一些写程序时的风格建议。 在这个对话框中提供的可能是良葛格的一些主观性较强的意见、经验或建议,也有可能是一些主题外的常识,或是一些额外的参考文件。 初学者应掌握的主题 每一章的内容由浅至深,初学者该掌握的深度要到哪儿呢?在每一章结束前,对于初学者我会建议至少要掌握的几个主题。 光盘内容 本书的光盘也是您学习的资源之一,光盘内容有: 书中范例源代码 操作设置相关的多媒体教学