首页>参考读物>计算机科学与技术>软件与程序设计

Java 2入门经典 JDK 5
作者 : Ivor Horton
译者 : 潘晓雷 于浚泊 王丹 等
出版日期 : 2006-01-10
ISBN : 7-111-18089-5
定价 : 118.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 1064
开本 : 16开
原书名 : Ivor Horton's Beginning Java 2, JDK 5 Edition
原出版社: Wrox
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

作为理想的面向对象的程序设计语言,Java以自身的简单性和强大功能成为Internet编程和跨平台开发中最常用的开发语言。
  本书以规范化的方式讲解Java编程。在介绍Java语言各个方面的过程中,一边解释有关Java语言结构和工作原理的基本知识,一边以大量的代码实例讲述如何开发功能齐全的Java应用程序。本书系统全面、浅显易懂,涵盖了从入门到精通的所有知识,以期帮助读者掌握Java语言的最新特性和Java类库中主要的功能包,积累Java应用环境的使用经验,并在核心技术领域打下坚实的基础。

本书主要内容
● 有关Java语言程序工作原理的基本知识
● 运用语言要素的方法
● 在程序中保存数据的方法
● 定义及实例化类的方法
● 在交互式Web网页中建立applet的方法
● 实现图形化用户程序的技术
● 利用JDBC功能使用关系型数据库
● 成为一个熟练的Java程序员所需的一切知识

图书特色

图书前言

欢迎选用本书
  欢迎选用本书。本书可指导读者学会Java语言和Java平台应用程序接口(Application Program Interface,API),理解和掌握使用J2SE 50或者更高版本开发程序的基本技巧。
  本书不仅向读者教授Java语言,还介绍了作为Java程序员应该了解的各种相关知识。本书合理安排内容、结构,以便读者精心安排进度,循序渐进地学习,其中每一阶段学习内容均以前面的已学内容为基础。

本书的读者对象
  Java程序设计是一个宽泛的领域,而且随着Java语言功能的改善和相关类库的扩充,它还在不断发展。Java是一种为互联网编程、跨平台开发和教学目的而设计的面向对象语言,自发布以来便发展迅猛。这主要由于三点:Java与生俱来的平台无关性;Java语言形式简单却功能强大;以及对相当多的任务而言Java高效易用。很多大型应用软件的开发者都选择使用Java语言,因为与其他语言相比,Java更加易于开发和维护,并且无须修改代码即可在各种结构的计算机和操作系统上运行。使用Java语言,程序员的工作将变得效率更高、更轻松。
  本书的目标是帮助读者全面地理解Java语言,并通过对Java编程环境的体验在其每个核心领域打下坚实的基础。本书使用丰富的代码示例阐明了Java语言的各个方面,读者可以而且应该自己动手建立并且运行这些代码示例。每一章末尾均有练习题,以便读者学会运用所学知识。学完本书各章内容后,读者将能够独立编写功能丰富且富有效率的Java程序。
  本书书名中的“入门”(Beginning)一词更多地是指讲述风格而非技能水平,因此本书也可叫做“Java直通车”(Straight into Java)。这是因为不论读者是具有其他语言编程经验的程序员还是初学者,都能从本书的内容构架中找到适合自己层次的内容。
  本书假定读者懂得最基本的一些编程知识,即至少了解程序工作原理的基本概念。但是先前没有一定编程经验的读者也能顺利地使用本书。本书的内容安排相当紧凑,但是并不缺少对Java程序的工作原理的必要解释和说明。

本书的内容
  本书按照如下顺序向读者讲授Java语言的编程知识:
 ●首先,介绍一些Java编程的基础术语和概念,以及后续内容的概要与框架,为日后的深入学习打好基础。
 ●其次,清楚地解释Java语言的各项特性——包括基本数据类型、处理数据的控制结构、面向对象、运行错误的处理方式以及线程等等,此外还解释了泛型的概念和使用方法。本书不但阐述了这些语言元素的含义,还告诉读者如何在实践中运用它们。
 ●第三,全面介绍了Java类库中关键的包(package),尤其是介绍并用大量实例说明了 javamath、javaio、javanio、javautil、javaawt、javaawtevent、javaapplet、javaxswing、javaxxml和 javaxsql包。这些包涵盖了文件处理、打印、集成类、帮助对象、图形用户界面(Graphical User Interface,GUI)、applet、XML以及关系数据库等诸多方面的功能。
 ●第四,通过介绍一个名为“Sketcher”的应用程序的开发全过程,指导读者在真实环境中学习运用Java语言功能和类库。在开发工程中,读者既要学会利用菜单、工具栏和状态栏等“组装”出程序的用户界面,也要实现绘制处理大量图形元素、编辑文本以及打印和保存文本处理结果(包括使用XML实现导入与导出)等功能。通过这种把功能函数组合成为应用程序的过程,读者能更好地理解如何在自己的实际项目中运用Java语言,这些经验是无法通过那些琐碎的示例得到的。
 ●最后,介绍了SQL基础,并讲授了如何使用JDK自带的JDBC功能操作关系数据库。
  作者在阐述上述主题的同时,还提供了一些原理性的介绍,并用具体实例予以清晰的说明。读者可以先快速浏览一遍,必要时再回顾有关基本原理。每章中的小例子主要用来阐述类及其使用方法,或者解释刚刚用到的新原理。这些小例子集中向读者展示某些特定的语言特性和工作原理。
  为了获得最佳阅读效果,推荐读者在阅读的同时实践所碰到的实例。即使已下载了代码,最好还是亲手输入它们,实践一遍,这样做效果一定非同一般。这些例子为读者编写自己的程序提供了不错的代码基础和提示。实践是非常重要的,从第一次运行代码出现的错误中,读者能够收获很多。
  本书所有实例源代码均可在 http://wwwwroxcom 网站上获得。

阅读本书的前提
  本书的实例源代码在J2SE 50版本下测试无误,读者需使用JDK 50或者以上版本。大部分章节的要求都不高,仅需要文本编辑器和可以运行Java工具的命令行窗口即可。第1章将给出这些要求的所有细节,并解释如何获得并安装这些指定软件。

本书约定
  为了让读者获得最佳阅读效果,本书对文字编排做了一些约定。
  在讨论代码时,使用Courier字体标识,对重要的、必须牢记的内容加上方框。例如:
  诸如此类的方框提供了一些不容忘记的重要信息,这些信息与方框前后的文字有很直接的关系。
  当介绍重要术语时,将使用黑体来突出强调。
  当表示组合按键时,使用Ctrl+A的形式。
  命令行和终端输出显示为:
  表现特定功能和机制的代码段将用灰色阴影予以识别:
  当部分改变某代码段时,被改变的部分也将用灰色阴影显示,如下所示:
  本书将通过“试一试”小节展示完整实例的部分代码。在“试一试”小节中,值得注意的是:代码段将被单独分离,重要的代码段加上了灰色阴影,表明程序的进展。当讲到重要的代码段时,本书会给出“程序工作原理”小节,以解释与之前所述理论相关的代码要点。
  “试一试”小节中的全新代码段将添加灰色阴影,如下所示:
  由前一版本修改而来的新代码将局部添加灰色阴影,如下所示:
  最后,代码中出现的“程序工作原理”小节将不添加灰色阴影,如下所示:

源代码
  在使用本书中的示例时,读者可以手工输入所有代码,也可直接使用本书附带的源代码文件。本书所有源代码均可从 http://wwwwroxcom 下载。访问该网站时,只需找到本书书名(可通过搜索书名或者检索书名列表找到),单击详细内容中的下载代码(Download Code)链接,即可得到本书所有源代码。
  由于许多书的书名与本书雷同,最快捷的方法是利用ISBN搜索,本书的ISBN为0764568744。
  下载代码后读者只需使用最习惯的工具予以解压即可。此外,读者还可以到Wrox主站的代码下载网页(http://wwwwroxcom/dynamic/books/downloadaspx ),可以得到本书以及其他由Wrox出版的书籍的相关源代码。

勘误和更新
  尽管我们竭尽所能力争文字和代码不出现错误,但是人非圣人,错误在所难免。如果读者在书中发现了错误(如拼写错误、代码错误等等),希望能及时反馈给我们,从而可以提醒更多的人避免陷入同样的错误,也有利于提高本书质量。对此我们深表谢意。
  若查看勘误表,请先登陆 http://wwwwroxcom,使用搜索框或者书名列表找到本书书名,然后在详情页面中单击勘误表链接。在勘误表网页中,读者将会看到所有和本书相关的勘误信息。读者可在wwwwroxcom/miscpages/booklistshtml 中得到所有相关书籍的勘误表(附带有链接)。

p2pwroxcom
  若想与作者和其他读者讨论有关Java的技术问题,可加入P2P论坛(p2pwroxcom)。这个论坛是基于Web的系统,读者可就Wrox出版的图书以及相关技术发表自己的见解,也可与图书作者和其他读者、技术人员进行交流。此论坛还提供了邮件订阅功能,读者可选择感兴趣的话题,如果论坛上新发布了相关的消息,系统会自动将这些方面的最新信息发送到读者的Email信箱。
  通过http://p2pwroxcom,不仅在阅读本书时,甚至在开发自己的程序时,读者也能得到许多有益的知识。
  只需以下简单操作,读者即可成为论坛的一员:
  1)登录http://p2pwroxcom ,并单击“注册”(Register)按钮。
  2)阅读用户条例,选择“同意”(Agree)按钮。
  3)填写所有必需的个人信息,选填愿意公布的可选信息,然后单击“提交”(Submit)按钮。
  4)你的Email信箱中将收到一封确认函,按照其中的要求确认注册即可。
  阅读p2p论坛中的内容无须注册,但是发布内容则必须注册。
  一旦注册成功,读者即可发表自己的帖子或者对其他发帖人回帖,任意时刻均可登录p2p论坛阅读内容。如果想看另外一个论坛的最新消息,可通过单击“订阅”Email中的论坛列表项来添加订阅。
  读者若想得到更多Wrox p2p论坛的使用信息,请阅读P2P FAQ,这里提供了如何使用论坛软件以及其他一些常见的问题。单击任何p2p页面中的“FAQ”链接即可访问。

封底文字

图书序言

在阅读这篇序言之前,读者的脑海里可能有些疑问。首先,这是不是一本适合我的书,书中的材料是不是最新的,还有书的内容是不是反映了最终版API?其次,面对这么厚的一本书,我该学习哪些东西?从哪里开始学习?
  我看过很多序言,其中大部分都是给读者讲一段轶事或者故事,然后稍稍介绍一下作者,但最后都不能为上述问题给出更好的答案。为了避免落入这种俗套,首先我要开门见山地回答上面第二个问题:这是一本值得从第一页一口气读到最后一页的书。如果读者从来没有接触过Ivon Horton的著作,那一定会感到惊喜。Ivon Horton撰写的著作通俗易懂,非常好读。这一点我是了解的,因为我已经把整本书从头到尾读了一遍。
  本书的本版是基于J2SE 50平台的。J2SE 50历经3年开发,是多年来Java平台最重大的更新之一。此版本的开发过程中有世界范围内160多名专家参与,他们都参与Java Community Process,致力于为所有开发者提供一款更好的开发平台。我本人也以JSR 176的Specification Lead身份参与其中,而JSR 176就定义了J2SE 50的内容。因此,我最关心的地方在于确保本书的精确性以及和最终版API集相一致。我甚至把本书每个代码实例编译运行了两次,发现了大量非常棒的代码实例,这一点读者不久就会发现。
  那么从本书可以学到什么呢?首先,作者会阐述基本的编程部件,帮助读者完成自己的第一个Java程序。然后,一步一步介绍Java语言,包括新的泛型、功能更强的for循环、枚举类型等等。在后面的章节里,读者还会接触到Java语言的最新特性,甚至学到其他一些非语言的特性,譬如XML、 DOM3的更新等。所以,不论是初学者,还是已经具备一些Java编程经验的人,都能从本书中学到使用最新版Java所必需的技术。
  最后,建议读者好好阅读这本书,享受JDK 50带来的一切,最终发现原来使用J2SE 50是这么简单!

Calvin Austin
Sun公司J2SE 50规范制订者之一

作者简介

Ivor Horton:Ivor Horton:  Ivon Horton 早年投身数学领域,但大学毕业不久即受雇于某著名制造企业。多年来,他曾使用各种语言编写实用程序,同时,对科学工作者和工程师进行编程培训。他在各种行业的工程设计中使用计算机解决问题有非常丰富的经验,撰写了多部C、C++和Java编程著作。

译者简介

潘晓雷 于浚泊 王丹 等:暂无简介

译者序

也许读者是一位C++或其他语言的程序员,也许读者从未接触过任何编程语言。无论如何,学习Java语言都是非常好的选择。这个理由有些是技术上的,有些是非技术上的。从技术上讲,Java语言具有如下优点:
 ●简单。Java最初是为对家用电器进行集成控制而设计的一种语言,因此它必须简单明了。其语法风格类似于C++,但摒弃了C++中容易引发程序错误的地方,同时提供了丰富的类库。
 ●面向对象。Java语言的设计完全是面向对象的。除了基本数据类型外,Java的所有数据都是用对象表示的。
 ●分布式。Java同时支持数据分布和操作分布。对于数据分布,Java提供了一个叫做URL的对象,利用这个对象,可以打开并访问相同URL地址上的对象,访问方式与访问本地文件系统相同。对于操作分布,Java的applet小程序可以从服务器下载到客户端,即部分计算在客户端进行,提高系统执行效率。
 ●可靠性和安全性高。因为Java最初的设计致力于电子类消费产品,所以要求较高的可靠性。首先,Java是强类型的语言,要求显式的方法声明,这保证了编译器可以发现方法调用错误,保证程序更加可靠;其次,Java不支持指针,这杜绝了内存的非法访问;第三,Java的自动单元收集避免了内存丢失等动态内存分配导致的问题;第四,Java解释器运行时实施检查,可以发现数组和字符串访问的越界。最后,Java提供了异常处理机制,程序员可以把一组错误代码放在一个地方,这样可以简化错误处理任务,便于恢复。
 ●可移植性。这一直是Java程序开发人员的精神指标,也是Java之所以能够受到他们喜爱的原因之一。大多数编译器产生的目标代码只能运行在一种CPU上,即使那些能支持多种CPU的编译器也不能同时产生适合多种CPU的目标代码。但Java编译器不同,它产生的目标代码(JCode)是针对Java虚拟机(Java Virtual Machine)的,而不是实际存在的CPU。Java虚拟机能掩盖不同CPU之间的差别,使JCode能运行于任何具有Java虚拟机的机器上。
 ●多线程。Java在两方面支持多线程:一方面,Java环境本身就是多线程的。若干个系统线程运行负责必要的无用单元回收、系统维护等系统级操作;另一方面,Java语言内置多线程控制,可以大大简化多线程应用程序的开发。
 ●动态。Java的动态特性是其面向对象设计方法的发展,它允许程序动态地装入运行过程中所需要的类。
 ●支持Unicode码。Java使用Unicode作为它的标准字符,这项特性使得Java的程序能在不同语言的平台上编写和执行。Java也是目前所有计算机语言当中,惟一“天生”使用Unicode的语言。
  从非技术的角度谈学习Java的益处是Java的应用非常广泛,如果读者靠编写程序为生,那么迟早都会接触到Java。Java已经渐渐地渗透到各个领域,可以用它写出Java Servlet,将其挂在apache或其他Web服务器上;还可以写出Java applet,在网页浏览器上执行;甚至可以写出数据库的存储过程,然后安装到Oracle上。另外,Java是免费的,Sun公司提供Java相关的工具,允许用户开发并执行Java程序。用户无须支付授权费,也不用花钱买Java开发工具;而且可以从网站上免费获得Java的信息文件。
  基于上述原因,学习Java语言着实是件不错的事。本书是学习Java语言的理想教材,同前几版相比较,本书增添了许多对Java 2中新引进技术的介绍。从Java产生到现在,Java 2是第一次真正意义上对语言实现进行了大刀阔斧的改造。这包括泛型、增强的for 循环、自动装箱/拆箱、枚举类型、可变参数、静态导入、格式化的输入/输出、元数据等,这些新特性很大程度上简化了开发。
  本书作者Ivor Horton著有许多优秀的Java教程,他独到的编写风格赢得了全球数十万的读者,多部作品被评为最受欢迎的Java编程流行书籍。本书继承了他一贯的风格,并具有如下特点:
 ■本书的目标是为读者成为优秀的程序员打下坚实的基础,因此本书着重帮助读者掌握Java语言各种元素在软件开发中的使用。
 ■本书在介绍新的特性和概念之后都会精心安排一些示例,并详细地讲解示例程序的工作原理。同时在各个章节后面都设有相应的练习,帮助读者从更深的层次上理解Java的编程思想。
 ■本书的结构设计得十分到位,对于初次接触编程的读者,只需追随作者的思路即可;对于已经熟悉前几版Java特性的程序员,可以快速地了解到有关Java的新特性。
 ■本书介绍Java在特定领域(例如数据库和XML)的应用时,不仅讲解Java语言本身对应用的支持,而且生动、详尽地介绍了相关的知识。
  本书讲解深入浅出、结构合理,并提供了非常丰富的实例,非常适合作为编程初学者的自学教材;同时由于其涉及领域广泛,也可以作为具有一定编程经验的软件开发人员的参考手册。
  本书由潘晓雷组织翻译并负责全书译稿的统稿和审校,黄晓博负责初稿的文字校对。本书翻译具体分工如下:潘晓雷翻译前言、序、第1章、第13章、第14章、附录A、附录B;谷云翻译第2章、第3章;聂振辉翻译第4章、第8章、第15章;王丹翻译第5章~第7章;禹金璐翻译第9章~第12章、第16章;侯文翻译第17章、第18章;赵晓岩翻译第19章、第20章;赵毅翻译第21章、第24章、第25章;于浚泊翻译第22章、第23章。另外,海利顺翻译部为本书的翻译工作提供了一定的帮助。
  译著文字力求信、达、雅,但由于译者水平和时间有限,译作中难免有疏漏之处,恳请专家和读者批评指正。

潘晓雷
中国科学院青年公寓

推荐序

图书目录

第1章Java概述
11什么是Java
12Java语言的特性
13学习Java
131Java程序
132学习Java要走的路
14Java环境
15基于Java语言的面向对象程序设计
151对象是什么
152如何定义对象的类
153对象的操作
154Java程序语句
155封装
156类和数据类型
157类和子类
158使用对象的优点
16Java程序结构
161Java的类库
162Java应用程序
17Java和Unicode码
18本章小结
19参考资源
第2章程序、数据、变量和计算
21数据和变量
211变量的命名
212变量名和Unicode码
213变量和类型
22整型数据类型
221整型字面值
222整型变量的声明
23浮点数据类型
231浮点字面值
232浮点型变量的声明
24固定变量的值
25算术运算
251整数运算
252整数除法和余数
253自增和自减运算符
254短整型数计算
255整数算术运算中的错误
256浮点运算
26混合数据类型的算术运算表达式
261显式类型强制转换
262赋值语句中的自动类型转换
27op=运算符
28数学函数和常量
29字符的存储
291字符转义序列
292字符的算术运算
210按位运算
2101使用AND和OR运算符
2102使用异或运算符
2103移位运算
2104按位运算的方法
211有固定序列整型值的变量(枚举)
212布尔型变量
213运算符的优先级
214程序注释
215本章小结
216练习题
第3章循环与逻辑
31决策
311比较
312if语句
313嵌套的if语句
314比较枚举值
32逻辑运算符
33条件运算符
34switch语句
35变量作用域
36循环
361循环的种类
362嵌套循环
363continue语句
364在循环中使用break语句
37断言
38本章小结
39练习题
第4章数组和字符串
41数组
411数组变量
412数组定义
413数组的长度
414访问数组元素
415数组变量的重用
416数组初始化
417使用数组
418嵌套数组
419字符数组
42字符串
421字符串常量
422创建String对象
423字符串数组
43字符串的运算
431字符串的连接
432字符串的比较
433字符串的排序
434访问字符串中的字符
435搜索字符串中的字符
436子串搜索
437提取子串
438String对象的修改版本
439由String对象创建字符数组
4310对字符串使用collectionbased for循环
4311以字节数组的形式获取字符串中的字符
4312由字符数组创建String对象
44可变字符串
441创建StringBuffer对象
442StringBuffer对象的容量
443为StringBuffer对象改变字符串的长度
444向StringBuffer对象增加其他内容
445查找子串的位置
446替换缓冲区中的子串
447插入子串
448从可变字符串中提取字符
449对可变字符串的其他操作
4410由StringBuffer对象创建String对象
45本章小结
46练习题
第5章类的定义
51什么是类
511类定义中的变量
512类定义中的方法
513变量和方法的访问
52定义类
53方法的定义
531由方法返回
532形式参数表
533类方法的定义
534在方法中访问类的数据成员
535this变量
536初始化数据成员
54构造函数
541默认构造函数
542生成类的对象
55类的定义和使用
56方法重载
561多个构造函数
562使用构造函数复制对象
57对象的使用
58递归
59理解包
591类的打包
592将包中的类添加到程序中
593程序中的包和名称
594导入静态类成员
595标准包
510控制对类成员的访问
5101使用访问属性
5102指定访问属性
5103选择访问属性
511嵌套类
5111静态嵌套类
5112使用非静态嵌套类
5113在顶层类之外使用嵌套类
5114局部嵌套类
512finalize()方法
513本地方法
514本章小结
515练习题
第6章类的扩展与继承
61使用现有的类
62类的继承
621继承数据成员
622继承方法
623覆盖基类的方法
63选择基类的访问属性
64多态
65多级继承
66抽象类
67通用超类
671toString()方法
672确定对象的类型
673对象的复制
68接收可变实参的方法
69对象的类型强制转换
691何时强制转换对象的类型
692对象的识别
610关于枚举
611类的设计
612使用final修饰符
613接口
6131封装程序中的常量
6132声明方法的接口
6133接口的扩展
6134接口的应用
6135接口类型的方法形参
6136接口定义中的嵌套类
6137接口与现实世界
614匿名类
615本章小结
616练习题
第7章异常
71异常的概念
72异常的类型
721Error异常
722RuntimeException异常
723Exception类的其他子类
73异常的处理
731指定方法可以抛出的异常
732异常的处理
733try代码块
734catch代码块
735finally代码块
736方法的组织
737执行的顺序
738嵌套的try代码块
739再次抛出异常
74异常对象
741Throwable类
742标准异常
75定义自己的异常
751定义异常类
752抛出自己的异常
753异常处理策略
76本章小结
77练习题
第8章理解流
81流和新的I/O功能
82流的定义
821输入流和输出流
822二进制流和字符流
83输入/输出类
831基本的输入流操作
832基本的输出流操作
833Readers流和Writers流
84标准流
841从键盘获取数据
842向命令行写
843printf()方法
844将数据格式化输入到字符串
85本章小结
86练习题
第9章访问文件和目录
91运用File对象
911创建File对象
912访问系统属性
913测试和检查File对象
914文件列表的过滤
915创建、修改文件和目录
92创建文件输出流
921确保文件存在
922避免覆盖文件
923FileDescriptor对象
93本章小结
94练习题
第10章写文件
101文件输入/输出基础
102文件输入/输出
103通道
1031通道操作
1032文件通道
104缓冲区
1041缓冲区容量
1042缓冲区位置和边界
1043设置位置和边界
1044创建缓冲区
1045标记缓冲区
1046缓冲区数据传送
1047将数据传送到缓冲区
1048使用视图缓冲区
1049准备好向文件输出的缓冲区
105写入文件
1051文件位置
1052将变长字符串写入文件
1053直接缓冲区和间接缓冲区
1054将数值数据写入文件
1055将混合数据写入文件
1056集中写操作
106本章小结
107练习题
第11章读文件
111文件读操作
112文件通道读操作
113读取文本文件
114读取二进制数据
115读取混合型数据
116文件的复制
117随机存取文件
118使用一个文件通道进行读写
119内存映像文件
1191锁定文件
1192文件的部分锁定
1193实际文件锁定的注意事项
1110本章小结
1111练习题
第12章对象的序列化
121在文件中存储对象
1211将对象写入文件
1212将基本数据类型写入对象流
1213实现Serializable接口
1214从文件读取对象
1215使用对象序列化
1216自己实现类的序列化
1217序列化的问题和复杂情况
122本章小结
123练习题
第13章泛型类
131什么是泛型
132泛型类的定义
1321泛型的实现
1322泛型的实例化
1323泛型实例的运行时类型
1324泛型实例之间的关系
1325多重类型参数
1326类型参数的作用域
1327泛型中的静态成员域
1328类型参数限制
133泛型和泛型接口
1331利用collectionbased for循环
1332实现一个迭代器
1333参数化的二叉树
134原生类型变量
135用通配符作为类型实参
1351对通配符的约束
1352进一步研究Class类
136数组和参数化类型
137参数化方法
138参数化类型和继承
139本章小结
1310练习题
第14章集合框架
141理解集合框架
142对象的集合
1421集
1422序列
1423映射
143迭代器
144集合类
145使用向量
1451创建向量
1452把对象存入向量中
1453从向量中获取对象
1454从数组中删除对象
1455搜索向量
1456应用向量
1457为集合排序
1458栈式存储
146使用链表
147使用映射
1471散列处理
1472用自己的类创建的对象作键
1473创建HashMap容器
1474存储、获取以及删除对象
1475处理映射中所有的元素
148本章小结
149练习题
第15章实用类的集合
151数组的工具方法
1511填充数组
1512比较数组
1513对数组排序
1514搜索数组
152Observable对象和Observer对象
1521定义可观察对象的类
1522Observable类的方法
153产生随机数
154日期和时间
1541Date类
1542解释Date对象
1543Gregorian日历
155正则表达式
156使用扫描器
1561创建扫描器对象
1562获取从扫描器的输入
1563测试标记
1564为标记定义自己的模式
157本章小结
158练习题
第16章线程
161理解线程
1611创建线程
1612停止线程
1613连接线程
1614线程调度
1615实现Runnable接口
162管理线程
1621同步处理
1622死锁
1623线程间的通信
163线程的优先级
164本章小结
165练习题
第17章创建窗口
171Java中的图形用户界面
172创建窗口
173组件和容器
1731窗口和框架组件
1732窗口窗格
174组件基础
1741组件属性
1742组件的大小和位置
1743点和矩形
1744组件的可视特性
1745Swing组件
175使用容器
176容器布局管理器
1761流布局管理器
1762使用边界布局管理器
1763使用卡片布局管理器
1764使用网格布局管理器
1765使用盒式布局管理器
1766使用GridBagLayout管理器
1767使用SpringLayout管理器
177添加菜单到窗口中
1771创建JMenu和JMenuItem
1772创建菜单
1773添加菜单项到下拉菜单中
1774为菜单项添加快捷键
178更多关于applet小程序的内容
179本章小结
1710练习题
第18章事件处理
181基于窗口的Java程序
182事件处理过程
183在图形用户界面代码中避免死锁
184事件类
1841低级事件类
1842低级事件监听器
1843语义事件
1844语义事件监听器
185applet小程序中的语义事件处理
1851其他处理事件方法
1852处理低级事件和语义事件
186应用程序中的语义事件监听器
187使用Action
1871Action接口
1872将行为应用于菜单项
188添加工具栏
1881添加按钮到工具栏中
1882添加工具提示
1883禁用动作
189本章小结
1810练习题
第19章在窗口中绘画
191使用模型/视图体系结构
192组件中的坐标系
193在组件上绘图
1931图形环境
1932绘制过程
1933渲染操作
194几何图形
1941定义点的类
1942直线段和矩形
1943圆弧和椭圆
1944曲线
1945复杂路径
195填充几何图形
196管理几何图形
1961在文档中存储图形
1962绘制图形
197使用鼠标绘制
1971处理鼠标事件
1972处理鼠标按键按下事件
1973处理鼠标拖拽事件
1974处理鼠标按键释放事件
1975使用MouseInfo类方法确定鼠标的位置
198定义自己的图形类
1981定义线段
1982定义矩形
1983定义圆形
1984绘制曲线
199本章小结
1910练习题
第20章扩展图形用户界面
201创建状态栏
202使用对话框
2021模式与非模式对话框
2022简单的模式对话框
2023即时对话框
2024输入对话框
2025字体选择对话框
203弹出式菜单
2031显示弹出式菜单
2032实现上下文菜单
204转换用户坐标系统
2041仿射转换类
2042修改图形环境的转换
2043创建仿射转换对象
205选择自定义颜色
206本章小结
207练习题
第21章文档的整理和打印
211序列化处理草图
212实现可序列化接口
213支持文件菜单
2131使用文件选择器
2132文件保存操作
2133文件另存为操作
2134文件打开操作
2135开始新建草图
2136防止关闭时数据丢失
214在Java中打印
2141创建和使用PrinterJob对象
2142打印页面
2143打印完整的草图
2144横向打印
2145改进打印应用程序
2146实现页面设置
2147使用Java的打印对话框
2148多页文档打印
2149使用Book打印
21410打印Swing组件
215本章小结
216练习题
第22章Java与XML
221XML
222XML文档结构
2221有效的XML文档
2222XML文档中的元素
2223元素属性
223XML中的数据结构
224文档定义类型
2241声明DTD
2242定义DTD
2243Sketcher程序的DTD
225构造良好文档的规则
226XML名字空间
2261名字空间声明
2262XML名字空间和DTD
227XML模式
2271定义模式
2272定义元素
2273定义复杂元素的属性
2274指定一组备选元素
2275用于Sketcher程序的模式
2276使用模式的文档
228使用XML文档编程
2281SAX处理
2282DOM处理
229访问解析器
2210使用SAX
22101使用不同的解析器
22102解析器的特征及特性
22103使用SAX解析文档
22104实现SAX处理器
22105处理其他解析事件
22106解析由模式实例化的文档
2211本章小结
2212练习题
第23章创建和修改XML文档
231文档对象模型
2311设置DOM解析器特征
2312解析文档
2313遍历文档对象树
2314创建XML文档
2315将草图存储为XML文档
2316阅读用XML表示的草图
232本章小结
233练习题
第24章与数据库通信
241JDBC的概念和术语
2411表
2412数据库编目
242SQL简介
2421定义一个相交表
2422SQL语句
2423INSERT语句
2424SELECT语句
2425UPDATE语句
2426DELETE语句
243JDBC包
2431JDBC与ODBC的关系
2432JDBC基础
2433建立一个数据库
2434DriverManager
2435创建一个数据源连接
2436关于驱动程序的更多内容
2437Statement对象
2438ResultSet对象
2439获得结果集的元数据
244基本的JDBC程序
245使用PreparedStatement对象
246创建Interactive SQL工具
2461使用表
2462应用程序GUI
2463处理事件
2464处理命令行实参
247本章小结
248练习题
第25章JDBC操作
251数据类型与JDBC
252把关系数据映射到Java对象
253Statement和PreparedStatement接口
2531Statement接口
2532PreparedStatement接口
254结果集
2541获取指定数据类型的列数据
2542处理空值
2543处理特殊数据类型
2544流的处理
255调用存储过程
256错误处理
2561SQLException
2562SQLException链锁
2563SQL警告
257浏览数据库
2571显示数据库中的数据
2572使用JTree组件
2573获取数据库元数据
2574使用树监听器
258本章小结
259练习题
附录AJava保留关键字
附录B计算机运算基础知识ⅩⅦⅩⅧ

教学资源推荐
作者: 施霞萍 张欢欢 王瑾德 马可幸
作者: (美)Al Kelley,Ira Pohl
作者: [美]罗伯特·W. 塞巴斯塔(Robert W. Sebesta) 著
参考读物推荐
作者: [美]程润伟(John Cheng) 马克斯?格罗斯曼(Max Grossman) 泰•麦克切尔(Ty McKercher) 著
作者: 秦小波 著
作者: Kathleen McGrath;Paul Stubbs