当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

引言[Java编程]

赞助商链接



  本文“引言[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

同人类任何语言一样,Java为我们供应了一种表达思惟的方法.如操作得当,同其他方法相比,随着问题变得愈大和愈复杂,这种表达方法的便利性和机动性会显露无遗.
不可将Java简单想象成一系列特点的调集;如孤独地看,有些特点是没有任何意义的.只有在考虑“计划”、而非考虑简单的编码时,才可真正领会到Java的强盛.为了按这种方法理解Java,首先必须掌握它与编程的一些基本概念.本书谈论了编程问题、它们为什么会成为问题以及Java用以办理它们的办法.所以,我对每一章的注释都成立在若何用语言办理一种特定范例的问题底子上.按这种方法,我但愿指导您一步一步地进入Java的世界,使其终究成为您最自然的一种语言.
贯串本书,我试图在您的大脑里成立一个模子——大概说一个“知识构造”.这样可加深对语言的理解.若碰到难懂之处,应学会把它填入这个模子的对应地方,然后自行演绎出答案.事实上,学习任何语言时,脑海里有一个现成的知识构造常常会起到事半功倍的效果.

1. 前提
本书假定读者对编程多少有些熟习.应已知道程序是一系列语句的调集,知道子程序/函数/宏是什么,知道象“If”这样的掌握语句,也知道象“while”这样的循环构造.注意这些东西在大量语言里都是近似的.假定您学过一种宏语言,大概用过Perl之类的工具,那么它们的基本概念并没有什么辨别.总之,只要能习惯基本的编程概念,便可顺利阅读本书.当然,C/C++程序员在阅读时能占到更多的便宜.但即便不熟习C,一样不要把自己解除在外(固然今后的学习要付出更大的勤奋).我会报告面向对象编程的概念,以及Java的基本掌握机制,所以不用耽忧自己会打不好底子.何况,您需求学习的第一类知识就会触及到基本的流程掌握语句.
固然常常城市谈及C和C++语言的一些特点,但并没有打算使它们成为内部参考,而是想帮忙全部程序员都能精确地对待那两种语言.毕竟,Java是从它们那边衍生出来的.我将试着尽大概地简化这些引用和参考,并公道地注释一名非C/C++程序员普通不太熟习的内容.

2. Java的学习
在我第一本书《Using C++》面市的几近同一时间(Osborne/McGraw-Hill于1989年出版),我开始传授那种语言.程序计划语言的传授已成为我的专业.自1989年以来,我便在世界各地见过很多昏昏欲睡、满脸茫然以及困惑不解的面庞.开始在室内面向较少的一组人讲课今后,我从功课中发现了一些分外的问题.即便那些上课面带会意的浅笑大概屡屡点头的学生,对很多问题也存在熟习上的混合.在过去几年间的“软件开辟会议”上,由我主持C++分组谈论会(目前变成了Java谈论会).有的演讲人试图在很短的时间内向听众灌输过量的主题.所以到最后,固然听众的水平都还可以,并且供应的质料也很充沛,但仍旧丧失了一部份听众.这大概是由于问得太多了,但由于我是那些采纳传统讲课方法的人之一,所以很想使每个人都能跟上讲课进度.
有段时间,我编制了大量讲授简报.经过不断的试验和订正(或称“反复”,这是在Java程序计划中非常有效的一项技术),最后成功地在一门课程中集成了从我的讲授经验中总结出来的全部东西——我在很长一段时间里都在利用.此中由一系列离散的、易于消化的小步骤构成,并且每个小课程完毕后都有一些得当的操练.我目前已在Java公开研究会上公布了这一课程,大家可到http://www.BruceEckel.com理解详情(对研究会的介绍也以CD-ROM的情势供应,具体信息可在一样的Web站点找到).
从每一次研究会收到的反馈都帮忙我改正及重新制订学习质料的重心,直到我最后认为它成为一个完善的讲授载体为止.但本书并非仅仅是一本教科书——我尝试在此中装入尽大概多的信息,并按照主题举行了有序的分类.无论若何,这本书的主要目标是为那些独立学习的人士服务,他们正预备深化一门新的程序计划语言,而没有太大的大概参与此类专业研究会.

3. 目标
就象我的前一本书《Thinking in C++》一样,这本书面向语言的传授举行了杰出的构造与组织.分外地,我的目标是成立一套有序的机制,可帮忙我在自己的研究会上更好地举行语言讲授.在我考虑书中的一章时,实际上是在想若何教好一堂课.我的目标是得到一系列规模适中的讲授模块,可以在公道的时间内教完.随后是一些尽心挑选的操练,可以在讲堂被骗即完成.
在这本书中,我想到达的目标总结以下:
(1) 每一次都将讲授内容向前促进一小步,便于读者在持续背面的学习前消化前面的内容.
(2) 采取的示例尽大概简短.当然,这样做有时会阻碍我办理“实际世界”的问题.但我同时也发现对那些新手来说,假如他们能理解每一个细节,那么普通会产生更大的学习爱好.而假定他们一开始就被要办理的问题的深度和广度所震惊,那么普通都不会收到很好的学习效果.别的在实际讲授历程中,对可以摘录的代码数目是有严重限制的.另一方面,这样做无疑会有些人会批判我采取了“不真实的例子”,但只要能起到杰出的效果,我甘愿承受这一责备.
(3) 要揭露的特点按照我尽心挑选的次序顺次出场,并且尽大概符合读者的思惟历程.当然,我不大概永久都做到这一点;在那些情形下,会给出一段扼要的声明,指出这个问题.
(4) 只把我认为有助于理解语言的东西介绍给读者,而不是把我知道的一切东西都抖出来,这并非藏私.我认为信息的重要程度是存在一个公道的层次的.有些情形是95%的程序员都永久没必要理解的.如强行学习,只会干扰他们的正常思维,从而加深语言在他们眼前表现出来的难度.以C语言为例,假定你能记着运算符优先次序表(我历来记不住),那么便可以写出更“聪明”的代码.但再深化想一层,那也会使代码的读者/保护者感到困扰.所以忘了那些次序吧,在拿不准的时刻加上括号便可.
(5) 每一节都有明确的学习重点,所以讲授时间(以及操练的隔断时间)非常短.这样做不但能保持读者思惟的活泼,也能使问题更简单理解,对自己的学习产生更大的信心.
(6) 供应一个坚固的底子,使读者能充分理解问题,以便更简单转向一些越发艰难的课程和书籍.

4. 联机文档
由Sun微系统公司供应的Java语言和库(可免费下载)配套供应了电子版的用户帮忙手册,可用Web浏览器阅读.此外,由其他厂商开辟的几近全部近似产品都有一套等价的文档系统.而目前出版的与Java有关的几近全部书籍都反复了这份文档.所以你要末已经拥有了它,要末需求下载.所以除非分外必要,不然本书不会反复那份文档的内容.因为普通地说,用Web浏览器查找与类有关的资料比在书中查找便利得多(电子版的东西更新也快).只有在需求对文档举行增补,以便你能理解一个特定的例子时,本书才会供应有关类的一些附加阐明.

5. 章节
本书在计划时认真考虑了人们学习Java语言的方法.在我讲课时,学生们的反映有效地帮忙了我熟习哪些部份是对比艰难的,需分外加以留神.我也曾经一次报告了太多的问题,但得到的教导是:假定包含了大量新特点,就需求对它们全部作出注释,而这分外简单加深学生们的混合.因此,我举行了大量勤奋,使这本书一次尽大概地少触及一些问题.
所以,我在书中的目标是让每一章都报告一种语言特点,大概只报告少数几个彼此关联的特点.这样一来,读者在转向下一主题时,就可以更简单地消化前面学到的知识.
下面列出对本书各章的一个扼要阐明,它们与我实际举行的讲堂讲授是对应的.

(1) 第1章:对象入门
这一章是对面向对象的程序计划(OOP)的一个综述,此中包含对“什么是对象”之类的基本问题的答复,并报告了接口与实现、抽象与封装、消息与函数、担当与合成以及非常重要的多形性的概念.这一章会向大家提出一些对象成立的基本问题,比方构建器、对象存在于何处、成立好后把它们置于什么地方以及魔术般的垃圾汇集器(可以排除不再需求的对象).要介绍的另一些问题还包含通过违例实现的错误掌握机制、反映矫捷的用户界面的多线程处理以及连网和因特网等等.大家也会从中理解到是什么使得Java如此分外,它为什么获得了这么大的成功,以及与面向对象的解析与计划有关的问题.

(2) 第2章:一切都是对象
本章将大家带到可以着手写自己的第一个Java程序的地方,所以必须对一些基本概念作出注释,此中包含对象“句柄”的概念;怎样成立一个对象;对基本数据范例和数组的一个介绍;作用域以及垃圾汇集器排除对象的方法;若何将Java中的全部东西都归为一种新数据范例(类),以及若何成立自己的类;函数、自变量以及返回值;名字的可见度以及利用来自其他库的组件;static关键字;注释和嵌入文档等等.

(3) 第3章:掌握程序流程
本章开始介绍发源于C和C++,由Java担当的全部运算符.除此以外,还要学习运算符一些不易令人注意的问题,以及触及造型、升迁以及优先次序的问题.随后要报告的是基本的流程掌握以及挑选运算,这些是几近全部程序计划语言都具有的特点:用if-else实现挑选;用for和while实现循环;用break和continue以及Java的标签式break和contiune(它们被认为是Java中“不见的gogo”)退出循环;以及用switch实现另一种情势的挑选.固然这些与C和C++中见到的有一定的共通性,但多少存在一些辨别.除此以外,全部示例都是完好的Java示例,能使大家很快地熟习Java的外观.

(4) 第4章:初始化和排除
本章开始介绍构建器,它的作用是担保初始化的精确切现.对构建器的定义要触及函数过载的概念(因为大概同时有几个构建器).随后要谈论的是排除历程,它并非必定如想象的那么简单.用完一个对象后,普通可以没必要管它,垃圾汇集器会自动参与,释放由它占据的内存.这里具体探究了垃圾汇集器以及它的一些特点.在这一章的最后,我们将更切近地察看初始化历程:自动成员初始化、指定成员初始化、初始化的次序、static(静态)初始化以及数组初始化等等.

(5) 第5章:躲藏实现历程
本章要探究将代码封装到一同的方法,以及在库的其他部份躲藏时,为什么仍有一部份处于表露状况.首先要谈论的是package和import关键字,它们的作用是举行文件级的封装(打包)操作,并答应我们构建由类构成的库(类库).此时也闲谈到目录途径和文件名的问题.本章剩下的部份将谈论public,private以及protected三个关键字、“友好”拜候的概念以及各种场所下差别拜候掌握级的意义.

(6) 第6章:类再生
担当的概念是几近全部OOP语言中都占据重要的地位.它是对现有类加以操纵,并为其增添新功效的一种有效途径(同时可以改正它,这是第7章的主题).通过担当来反复利用原有的代码时(再生),普通需求保持“底子类”不变,只是将这儿或那儿的东西串通起来,以到达预期的效果.但是,担当并非在现有类底子上制造新类的唯一手段.通过“合成”,亦可将一个对象嵌入新类.在这一章中,大家将学习在Java中反复利用代码的这两种办法,以及具体若何应用.

(7) 第7章:多形性
若由你自己来干,大概要花9个月的时间才能发现和理解多形性的问题,这一特点实际是OOP一个重要的底子.通过一些小的、简单的例子,读者可知道若何通过担当来成立一系列范例,并通过它们共有的底子类对那个系列中的对象举行操作.通过Java的多形性概念,同一系列中的全部对象都具有了共通性.这意味着我们编写的代码没必要再依靠特定的范例信息.这使程序更易扩大,包涵力也更强.由此,程序的构建和代码的保护可以变得更便利,付出的代价也会更低.此外,Java还通过“接口”供应了设置再生关系的第三种途径.这儿所谓的“接口”是对对象物理“接口”一种纯粹的抽象.一旦理解了多形性的概念,接口的含义就很简单注释了.本章也向大家介绍了Java 1.1的“内部类”.

(8) 第8章:对象的包容
对一个非常简单的程序来说,它大概只拥有一个固定数目的对象,并且对象的“生存时间”大概“存在时间”是已知的.但是普通,我们的程序会在不定的时间成立新对象,只有在程序运行时才可理解到它们的详情.此外,除非进入运行期,不然无法知道所需对象的数目,乃至无法得知它们切当的范例.为办理这个常见的程序计划问题,我们需求拥有一种本领,可在任什么时刻间、任何地址成立任何数目的对象.本章的目标就是探究在利用对象的同时用来包容它们的一些Java工具:从简单的数组到复杂的调集(数据构造),如Vector和Hashtable等.最后,我们还会深化谈论新型和改良过的Java 1.2调集库.

(9) 第9章:违例不对掌握
Java最基本的计划目标之一就是组织错误的代码不会真的运行起来.编译器会尽大概捕捉问题.但某些情形下,除非进入运行期,不然问题是不会被发现的.这些问题要末属于编程错误,要末则是一些自然的出错情况,它们只有在作为程序正常运行的一部份时才会成立.Java为此供应了“违例掌握”机制,用于掌握程序运行时产生的一切问题.这一章将注释try、catch、throw、throws以及finally等关键字在Java中的工作原理.并报告什么时刻该当“掷”出违例,以及在捕捉到违例后该采纳什么操作.此外,大家还会学习Java的一些尺度违例,若何构建自己的违例,违例发生在构建器中怎么办,以及违例掌握器若何定位等等.

(10) 第10章:Java IO系统
理论上,我们可将任何程序分割为三部份:输入、处理和输出.这意味着IO(输入/输出)是全部程序最为关键的部份.在这一章中,大家将学习Java为此供应的各种类,若何用它们读写文件、内存块以及掌握台等.“老”IO和Java 1.1的“新”IO将得到侧重夸大.除此之外,本节还要探究若何获得一个对象、对其举行“流式”加工(使其能置入磁盘或通过网络传送)以及重新构建它等等.这些操作在Java的1.1版中都可以自动完成.别的,我们也要谈论Java 1.1的压缩库,它将用在Java的归档文件格局中(JAR).

(11) 第11章:运行期范例断定
若只有指向底子类的一个句柄,Java的运行期范例标断定(RTTI)使我们能获知一个对象的精确范例是什么.普通情形下,我们需求有意忽视一个对象的精确范例,让Java的动态绑定机制(多形性)为那一范例实现精确的行为.但在某些场所下,关于只有一个底子句柄的对象,我们仍旧分外有必要理解它的精确范例是什么.拥有这个资料后,普通可以更有效地履行一次特别情形下的操作.本章将注释RTTI的用处、若何利用以及在得当的时刻若何放弃它.此外,Java 1.1的“反射”特点也会在这里得到介绍.

(12) 第12章:传送和返回对象
由于我们在Java中同对象沟通的唯一途径是“句柄”,所以将对象传送到一个函数里以及从那个函数返回一个对象的概念就显得非常风趣了.本章将注释在函数中收支时,什么才是为了管理对象需求理解的.同时也会报告String(字串)类的概念,它用一种差别的方法办理了一样的问题.

(13) 第13章:成立窗口和程序片
Java配套供应了“抽象Windows工具包”(AWT).这实际是一系列类的调集,能以一种可移植的情势办理视窗操作问题.这些窗口化程序既可以程序片的情势呈现,亦可作为独立的利用程序利用.本章将向大家介绍AWT以及网上程序片的成立历程.我们也会探究AWT的优缺陷以及Java 1.1在GUI方面的一些改良.同时,重要的“Java Beans”技术也会在这里得到夸大.Java Beans是成立“快速利用开辟”(RAD)程序构造工具的重要底子.我们最后介绍的是Java 1.2的“Swing”库——它使Java的UI组件得到了明显的改进.

(14) 第14章:多线程
Java供应了一套内建的机制,可供应对多个并发子任务的支持,我们称其为“线程”.这线程均在单一的程序内运行.除非机械安装了多个处理器,不然这就是多个子任务的唯一运行方法.固然还有别的很多重要用处,但在打算成立一个反映矫捷的用户界面时,多线程的应用显得尤为重要.举个例子来说,在采取了多线程技术后,固然当时还有别的任务在履行,但用户仍旧可以毫无阻碍地按下一个按钮,大概键入一些文字.本章将对Java的多线程处理机制举行探究,并介绍相关的语法.

(15) 第15章 网络编程
开始编写网络利用时,就会发现全部Java特点和库仿佛早已串通到了一同.本章将探究若何通过因特网通信,以及Java用以帮助此类编程的一些类.此外,这里也展示了若何成立一个Java程序片,令其同一个“通用网关接口”(CGI)程序通信;揭露了若何用C++编写CGI程序;也报告了与Java 1.1的“Java数据库衔接”(JDBC)和“远程办法调用”(RMI)有关的问题.

(16) 第16章 计划范式
本章将谈论非常重要、但同时也是非传统的“范式”程序计划概念.大家会学习计划进展历程的一个例子.首先是最初的筹划,然后阅历各种程序逻辑,将筹划不断变革为更得当的计划.通过整个历程的学习,大家可领会到使计划思惟逐突变得清楚起来的一种途径.

(17) 第17章 项目
本章包含了一系列项目,它们要末以本书前面报告的内容为底子,要末对从前各章举行了一番扩大.这些项目明显是书中最复杂的,它们有效演示了新技术和类库的利用.
有些主题仿佛不太合适放到本书的核心位置,但我发现有必要在讲授时谈论它们,这些主题都放入了本书的附录.

(18) 附录A:利用非Java代码
对一个完好可以移植的Java程序,它必定存在一些严重的缺陷:速度太慢,并且不能拜候与具体平台有关的服务.若事前知道程序要在什么平台上利用,便可考虑将一些操作变成“固有办法”,从而明显加快履行速度.这些“固有办法”实际是一些特别的函数,以另一种程序计划语言写成(目前仅支持C/C++).Java还可通过另一些途径供应对非Java代码的支持,此中包含CORBA.本附录将具体介绍这些特点,以便大家能成立一些简单的例子,同非Java代码打交道.

(19) 附录B:比较C++和Java
对一个C++程序员,他应当已经掌握了面向对象程序计划的基本概念,并且Java语法对他来说无疑是非常眼熟的.这一点是明显的,因为Java本身就是从C++衍生而来.但是,C++和Java之间的确存在一些明显的差别.这些差别意味着Java在C++底子上作出的庞大改良.一旦理解了这些差别,就可以理解为什么说Java是一种出色的语言.这一附录就是为这个目的设立的,它报告了使Java与C++明显有别的一些重要特点.

(20) 附录C:Java编程法则
本附录供应了大量倡议,帮忙大家举行初级程序计划和代码编写.

(21) 附录D:性能
通过这个附录的学习,大家可发现自己Java程序中存在的瓶颈,并可有效地改进履行速度.

(22) 附录E:关于垃圾汇集的一些话
这个附录报告了用于实现垃圾汇集的操作和办法.

(23) 附录F:举荐读物
列出我感受分外有效的一系列Java参考书.

6. 操练
为巩固对新知识的掌握,我发现简单的操练分外有效.所以读者在每一章完毕时都能找到一系列操练.
大大都操练都很简单,在公道的时间内可以完成.如将本书作为教材,可考虑在讲堂内完成.老师要注意察看,肯定全部学生都已消化了讲授的内容.有些操练要难些,他们是为那些有爱好深化的读者预备的.大大都操练都可在较短时间内做完,有效地检测和加深您的知识.有些标题对比具有挑衅性,但都不会太麻烦.事实上,操练中碰到的问题在实际利用中也会常常碰到.

7. 多媒体CD-ROM
本书配套供应了一片多媒体CD-ROM,可单独购置及利用.它与其他计算机书籍的普通配套CD差别,那些CD普通仅包含了书顶用到的源码(本书的源码可从www.BruceEckel.com免费下载).本CD-ROM是一个独立的产品,包含了一周“Hads-OnJava”培训课程的全部内容.这是一个由Bruce Eckel讲授的、长度在15小时以上的课程,含500张以上的演示幻灯片.该课程成立在这本书的底子上,所以是非常抱负的一个配套产品.
CD-ROM包含了本书的两个版本:
(1) 本书一个可打印的版本,与下载版完好一致.
(2) 为便利读者在屏幕上阅读和索引,CD-ROM供应了一个独特的超链接版本.这些超链接包含:
■230个章、节和小标题链接
■3600个索引链接
CD-ROM刻录了600MB以上的数据.我相信它已对所谓“物超所值”举行了崭新的定义.
CD-ROM包含了本书打印版的全部东西,别的还有来自五天快速入门课程的全部质料.我相信它成立了一个新的书刊品质评定尺度.
若想单独购置此CD-ROM,只能从Web站点www.BruceEckel.com处直接订购.

8. 源代码
本书全部源码都作为保存版权的免费软件供应,可以独立软件包的情势得到,亦可从http://www.BruceEckel.com下载.为保证大家得到的是最新版本,我用这个正式站点发行代码以及本书电子版.亦可在其他站点找到电子书和源码的镜像版(有些站点已在http://www.BruceEckel.com处列出).但无论若何,都应查抄正式站点,肯定镜像版确切是最新的版本.可在讲堂和其他教诲场所公布这些代码.
版权的主要目标是保证源码得到精确的引用,并避免在未经答应的情形下,在印刷质猜中公布代码.普通,只要源码得到了精确的引用,则在大大都媒体中利用本书的示例都没有什么问题.
在每个源码文件中,都能发现下述版本声明文字:

16-17页程序

可在自己的开辟项目中利用代码,并可在讲堂上引用(包含学习质料).但要肯定版权声明在每个源文件中得到了保存.

9. 编码款式
在本书正文中,标识符(函数、变量和类名)以粗体印刷.大大都关键字也采取粗体——除了一些频繁用到的关键字(若全部采取粗体,会使页面拥挤丢脸,比方那些“类”).
关于本书的示例,我采取了一种特定的编码款式.该款式得到了大大都Java开辟环境的支持.该款式问世已有几年的时间,最早发源于Bjarne Stroustrup先生在《The C++ Programming Language》里采取的款式(Addison-Wesley 1991年出版,第2版).由于代码款式目前是个敏感问题,极易招致数小时的激烈辩说,所以我在这儿只想指出自己并不打算通过这些示例成立一种款式尺度.之所以采取这些款式,完好出于我自己的考虑.由于Java是一种情势非常安闲的编程语言,所以读者完好可以按照自己的感受选用了合适的编码款式.
本书的程序是由字处理程序包含在正文中的,它们直接取自编译好的文件.所以,本书印刷的代码文件应能正常工作,不会造成编译器错误.会造成编译错误的代码已经用注释//!标出.所以很简单发现,也很简单用自动方法举行测试.读者发现并向作者报告的错误首先会在发行的源码中改正,然后在本书的更新版中校正(全部更新城市在Web站点http://www.BruceEckel.com处呈现).

10. Java版本
固然我用几家厂商的Java开辟平台对本书的代码举行了测试,但在判断代码行为能否精确时,却普通以Sun公司的Java开辟平台为准.
当您读到本书时,Sun应已发行了Java的三个重要版本:1.0,1.1及1.2(Sun声称每9个月就会公布一个主要更新版本).就我看,1.1版对Java语言举行了明显改良,完好应标志成2.0版(由于1.1已作出了如此大的改正,真不敢想象2.0版会呈现什么改变).但是,它的1.2版看起来终究将Java推入了一个全盛期间,分外是此中考虑到了用户界面工具.
本书主要谈论了1.0和1.1版,1.2版有部份内容触及.但在有些时刻,新办法明显优于老办法.此时,我会明显偏向于新办法,普通教给大家更好的办法,而完好忽视老办法.但是,有的新办法要以老办法为底子,所以不可避免地要从老办法动手.这一特点尤以AWT为甚,因为那儿不但存在数目众多的老式Java 1.0代码,有的平台仍旧只支持Java 1.0.我会尽大概指出哪些特点是哪个版本特有的.
大家会注意到我并未利用子版本号,比方1.1.1.至本书完稿为止,Sun公司公布的最后一个1.0版是1.02;而1.1的最后版本是1.1.5(Java 1.2仍在做β测试).在这本书中,我只会提到Java 1.0,Java 1.1及Java 1.2,避免由于子版本编号过量造成的键入和印刷错误.

11. 课程和培训
我的公司供应了一个五日制的大众培训课程,以本书的内容为底子.每章的内容都代表着一堂课,并附有呼应的课后操练,以便巩固学到的知识.一些帮助用的幻灯片可在本书的配套光盘上找到,最大限度地便利各位读者.欲理解更多的情形,请拜候:
http://www.BruceEckel.com
或发函至:
Bruce@EckelObjects.com
我的公司也供应了咨询服务,指导客户完成整个开辟历程——分外是您的单位初次接触Java开辟的时刻.

12. 错误
无论作者花多大精神来避免,错误老是从意想不到的地方冒出来.假如您认为自己发现了一个错误,请在源文件(可在http://www.BruceEckel.com处找到)里指出有大概是错误的地方,填好我们供应的表单.将您举荐的纠错办法通过电子信件发给Bruce@EckelObjects.com.经得当的查对与处理,Web站点的电子版以及本书的下一个印刷版本会作出呼应的改正.具体格局以下:
(1) 在主题行(Subject)写上“TIJ Correction”(去掉引号),以便您的信件进入对应的目录.
(2) 在信件正文,采取下述情势:

find: 在这里写一个单行字串,以便我们搜索错误所在的地方
Comment: 在这里可写多行批注正文,最好以“here's how I think it shoud read”开首
###

此中,“###”指出批注正文的完毕.这样一来,我自己计划的一个纠错工具就可以对原始正文来一次“搜索”,而您倡议的纠错办法会在随后的一个窗口中弹出.
若但愿在本书的下一版增添什么内容,或对书中的操练题有什么看法,也欢送您指出.我们感激您的全部看法.

13. 封面计划
《Thinking in Java》一书封面的创作灵感根源于American Arts & CraftsMovement(美洲艺术&手工艺品运动).这一运动起始于世纪之交,1900到1920年到达了颠峰.它发源于英格兰,具有一定的历史后台.当时恰是机械革命产生的风暴席卷整个大陆的时刻,并且遭到维多利亚区域激烈装潢气势的宏大影响.Arts&Crafts夸大的是原始气势,回归自然的初衷是整个运动的核心.当时对手工制作推崇备至,手工艺人分外得到恭敬.正因为如此,人们远远避开现代工具的利用.这场运动对整个艺术界造成了深远的影响,直至本日仍遭到人们的怀念.分外是我们面对又一次世纪之交,激烈的怀旧情感不免涌上心来.计算机发展至今,已走过了很长的一段路.我们更急迫地感到:软件计划中最重要的是计划者本身,而不是流水化的代码编制.如计划者本身的本质和涵养不高,那么最多只是“生产”代码的工具罢了.
我以一样的目光来对待Java:作为一种将程序员从操作系统烦琐机制中约束出来的尝试,它的目的是令人们成为真正的“软件艺术家”.
无论作者还是本书的封面计划者(自孩提时代就是我的朋友)都从这一场运动中得到了灵感.所以接下来的事情就非常简单了,要末自己计划,要末直接采取来自那个期间的作品.
此外,封面向大家展示了一个汇集箱,自然学者大概用它展示自己的昆虫标本.我们认为这些昆虫都是“对象”,全部置于更大的“汇集箱”对象里,再统一置入“封面”这个对象里.它向我们揭露了面向对象编程技术最基本的“调集”概念.当然,作为一名程序员,大家关于“昆虫”或“虫”是非常敏感的(“虫”在英语里是Bug,后指程序错误).这里的“虫”已被抓获,在一只广口瓶中杀死,最后禁闭于一个小的展览盒里——表示Java有本领探求、显示和消除程序里的“虫”(这是Java最具特点的特点之一).

14. 道谢
首先,感激Doyle Street Cohousing Community(道尔街住房社区)容忍我花两年的时间来写这本书(其实他们一向都在容忍我的“胡做非为”).非常感激Kevin和Sonda Donovan,是他们把科罗拉多Crested Butte市这个风光美好的地方租给我,使我整个夏天都能安心写作.感激Crested Butte友好的住民;以及Rocky Mountain Biological Laboratory(岩石山生物实行室),他们的工作人员老是面带浅笑.
这是我第一次找代理人出版,但却绝没有懊悔.谢谢“摩尔文学代理公司”的Claudette Moore小姐.是她强盛的信心与毅力使我终究幻想成真.
我的头两本书是与Osborne/McGraw-Hill出版社的编辑Jeff Pepper合作出版的.Jeff又在精确的地方和精确的时间呈目前了Prentice-Hall出版社,是他为了排除了全部大概碰到的障碍,也使我感受了一次高兴的出版阅历.谢谢你,Jeff——你对我非常重要.
要分外感激Gen Kiyooka和他的Digigami公司,我用的Web服务器就是他们供应的;也要感激Scott Callaway,服务器是由他负责保护的.在我学习Web的历程中,一个服务器无疑是相当有代价的帮忙.
谢谢Cay Horstmann(《Core Java》一书的副编辑,Prentice Hall于1997年出版)、D'Arcy Smith(Symantec公司)和Paul Tyma(《Java Primer Plus》一书的副编辑,The Waite Group于1996年出版),感激他们帮忙我澄清语言方面的一些概念.
感激那些在“Java软件开辟会议”上我的Java小组发言的同志们,以及我传授过的那些学生,他们提出的问题使我的教案愈发成熟起来.
分外感激Larry和Tina O'Brien,是他们将这本书和我的讲授内容制成一张讲授CD-ROM(关于这方面的问题,http://www.BruceEckel.com有更多的答案).
有很多人送来了纠错报告,我真的很感激全部这些朋友,但分外要对下面这些人说声谢谢:Kevin Raulerson(发现了多处庞大错误),Bob Resendes(发现的错误令人难以置信),John Pinto,Joe Dante,Joe Sharp,David Combs(很多语法和表达不清的地方),Dr. Robert Stephenson,Franklin Chen,Zev Griner,David Karr,Leander A. Stroschein,Steve Clark,Charles A. Lee,AustinMaher,Dennis P. Roth,Roque Oliveira,Douglas Dunn,Dejan Ristic,NeilGalarneau,David B. Malkovsky,Steve Wilkinson,以及其他很多热情读者.
为了使这本书在欧洲发行,Prof. Ir. Marc Meurrens举行了大量工作.
有一些技术人员曾走进我的生活,他们后来都和我成了朋友.最不平常的是他们满是素食主义者,平常喜好操练瑜珈功,以及另一些情势的精神锻炼.我在操练了今后,认为对我保持精神的茂盛非常有好处.他们是Kraig Brockschmidt,GenKiyooka和Andrea provaglio,是这些朋友帮我理解了Java和程序计划在乎大利的情形.
明显,在Delphi上的一些经验使我更简单理解Java,因为它们有很多概念和语言计划决意是相通的.我的Delphi朋友供应了很多帮忙,使我可以洞察一些不易为人注意的编程环境.他们是Marco Cantu(另一个意大利人——莫非会说拉丁语的人在学习Java时有得天独厚的上风?)、Neil Rubenking(他最喜好瑜珈/素食/禅道,但也非常喜好计算机)以及Zack Urlocker(是我游历世界时会面次数最多的一位同志).
我的朋友Richard Hale Shaw(以及Kim)的一些看法和支持施展了非常关键的作用.Richard和我花了数月的时间将讲授内容归并到一同,并探究若何使学生感遭到最完善的学习体验.也要感激KoAnn Vikoren,Eric Eaurot,DeborahSommers,Julie Shaw,Nicole Freeman,Cindy Blair,Barbara Hanscome,Regina Ridley,Alex Dunne以及MFI其他可敬的成员.
书籍计划、封面计划以及封面照片是由我的朋友Daniel Will-Harris制作的.他是一位闻名的作家和计划家(http://www.WillHarris.com),在初中的时刻就已显暴露了过人的数学天赋.但是,小样是由我制作的,所以录入错误都是我的.我是用Microsoft Word 97 for Windows来写这本书,并用它生成小样.正文字体采取的是Bitstream Carmina;标题采取Bitstream Calligraph 421(www.bitstream.com);每章开首的标记采取的是来自P22的Leonardo Extras(http://www.p22.com);封面字体采取ITC Rennie Marckintosh.
感激为我供应编译器程序的一些闻名公司:Borland,Microsoft,Symantec,Sybase/Powersoft/Watcom以及Sun.
分外感激我的老师和我全部的学生(他们也是我的老师),此中最风趣的一位写作老师是Gabrielle Rico(《Writing the Natural Way》一书的作者,Putnam于1983年出版).
曾向我供应过支持的朋友包含(当然还不止):Andrew Binstock,SteveSinofsky,JD Hildebrandt,Tom Keffer,Brian McElhinney,Brinkley Barr,《Midnight Engineering》杂志社的Bill Gates,Larry Constantine和LucyLockwood,Greg Perry,Dan Putterman,Christi Westphal,Gene Wang,DaveMayer,David Intersimone,Andrea Rosenfield,Claire Sawyers,另一些意大利朋友(Laura Fallai,Corrado,Ilsa和Cristina Giustozzi),Chris和Laura Strand,Almquists,Brad Jerbic,Marilyng Cvitanic,Mabrys,Haflingers,Pollocks,Peter Vinci,Robbins Families,Moelter Families(和McMillans),Michael Wilk,Dave Stoner,Laurie Adams,Cranstons,Larry Fogg,Mike和Karen Sequeira,Gary Entsminger和Allison Brody,KevinDonovan和Sonda Eastlack,Chester和Shannon Andersen,Joe Lordi,Dave和Brenda Bartlett,David Lee,Rentschlers,Sudeks,Dick,Patty和Lee Eckel,Lynn和Todd以及他们的家人.最后,当然还有我的爸爸和妈妈.


  以上是“引言[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 引言
  • <b>《挑衅30天C++入门极限》引言</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .