IX第五部分高级Java程序设计(第29~31、37~43章)这一部分是高级Java程序设计。第29章用多线程使程序具有更好的响应和交互。第30章介绍如何编写程序使得Internet上的不同主机能够相互通信。第31章介绍利用国际化支持来开发国际客户的项目。第37章介绍使用Java来开发数据库项目,第38章介绍高级Java数据库程序设计,而第39和40章介绍如何使用Javaservlet和JSP创建来自Web服务器的动态内容。第41章介绍使用JavaServerFaces进行快速Web应用程序开发。第42章介绍Web服务。第43章介绍远程方祛调用。Java开发工具可以使用Windows记事本(NotePad)或写字板(WordPad)这样的文本编辑器创建Java程序,然后从命令窗口编译、运行这个程序。也可以使用Java开发工具,例如,TextPad、NetBeans或者Eclipse。这些工具支持快速开发Java应用程序的集成开发环境(IDE)。编辑、编译、构建、运行和调试程序都集成在一个图形用户界面中。有效地使用这些工具可以极大地提高编写程序的效率。TextPad是一个基本的集成开发环境工具。NetBeans和Eclipse更加复杂,如果遵照指南,可以很容易地使用这些工具。关于TextPad、NetBeans和Eclipse的使用指南,参见本书配套网站上的补充材料。LiveLab本书有一个配套的基于Web的课程评估和管理系统。这个系统有以下三个主要组件:·自动打分系统:它可以自动给书中的程序或教师自已创建的程序打分。·测验题的创建/提交/打分系统:它可以让教师创建/修改学生所用的测验题,并且进行自动打分。·跟踪分数。考勤等,它可以让学生跟踪分数,同时教师也可以看到所有学生的成绩以及跟踪他们的考勤。自动打分系统的主要特征如下:·允许学生编译、运行和提交练习题,(系统检查他们的程序是否能正常运行一一学生可以在到期日之前继续运行和重新提交程序,·允许教师评阅提交的作业:用教师的测试用例来运行程序:更正程序,提交反馈给学生。·允许教师创建/修改自定制的练习题,创建公共的和秘密的测试用例,布置练习题,为整个班级或个人设置到期日。·可以将所有的练习题布置给学生。除此之外,LiveLab还提供了书中没有的附加练习题。·允许教师排序和过滤所有的练习题,并且检查成绩(依时间框、学生或练习题)。·允许教师从系统中删除学生。·允许学生和教师跟踪练习题的分数R测试题系统的主要特征如下:·允许教师创建/修改来自试题库或文本文件的测验题,或者创建在线的全新测试题。瓷·允许教师给全班学生或某个学生布置测验题,设置到期日和测试时间限制。·允许学生和教师查看已提交的测验题。·允许学生和教师跟踪测验成绩。成PDG学生资源学生资源可以从本书的配套网站得到,具体包括:
x·复习题的答案。·偶数号编程练习题的解答。·本书例子的源代码。·交互式的自测题(依章节组织)LiveLab.·资源链接。·勘误表。补充材料本书的正文讲解基本主题。补充材料是正文的延伸,介绍读者可能感兴趣的附加主题。本书配套网站上可以访问的补充材料如下表所示。配套网站上的补充材料第I部分常用的补充材料Object类中的方法A词汇表K隐藏数据域和静态方法B安装和配置JDKL初始化块C从命令窗口编译和运行JavaM关于覆盖方法的扩展讨论DJava编码风格指南N设计模式E在Windows中为Java应用程序创建桌面快捷方式OJDK1.5之前的文本I/O(Reader类和Writer类)F使用包组织教材中的类P断言Q打包和部署Java工程第II部分IDE补充材料RJava的Web启动ATextPad教程S签名的JavaappletBNetBeans6教程I一页启动指令T GridBagLayoutiOverlayLayoutiSpringLayoutC使用NetBeans高效学习JavaU使用数据报协议的网络DEclipse教程一页启动指令V创建内部的顿E使用Eclipse高效学习JavaFJBuilderX教程UJBuilder2005教程一页启W可插拔的Look和Feel动指令XUML图形符号G使用JBuilder高效学习JavaY使用JUnit测试类HJBuilder2007教程ZJNIAAStringTokenizer类第IⅢI部分Java补充材料ABSwingWorker和JProgressBarAJava特征B关于操作符和操作数的讨论第IV部分数据库补充材料C&和操作符A本书中用来创建和初始化表格的SQL语句D按位操作BMySQL教程-E带break和continue的语句标签COracle教程F枚举类型DGDMicrosoftAccess教程G包E数据库系统简介H正则表达式F关系数据库概念1格式化字符串G数据库设计
XI第VI部分实例学习HSQL基础A完整的九宫格问题的解决方案(第7章)I高级SQLB地址薄(第19章)第V部分Web程序设计补充材料C骑士旅行问题(第27章)IKnightTourAppleAHTML和XHTML教程B CSS教程第VII部分常见错误C XML第VII部分有用链接DJava和XMLAJavaAPIETomcat教程F更多关于JSF和可视化Web开发的例子B排序算法视频教师资源教师资源可以从本书的配套网站下载。这些资源包括:·带源代码和运行程序的PowerPoint教学幻灯片。·教师解答手册。·计算机化测试题产生器,·使用多选题和简答题的样本测验,编写和跟踪程序,并且纠正程序设计的错误。-LiveLab,·勘误表。此外,教学幻灯片和教师解答手册也可从华章网站(www.hzbook.com)下载。致谢感谢阿姆斯特朗亚特兰大州立大学给我机会讲授我所写的内容,并支持我将所教的内容写出来。教学是继续改进本书的灵感之源,感谢提出批评、建议、纠错报告和赞扬的教师和学生。由于有了对本版和以前版本的富有见解的评审,本书得到很大的改进。感谢以下评审人员:Elizabeth Adams (James Madison University), Syed Ahmed (North Georgia College and State University).Omar Aldawud (linois Institute of Technology),Yang Ang (University of Wollongong,Australia),KevinBierre (Rochester Institute of Technology), David Champion (DeVry Institute), James Chegwidden (TarrantCounty College),Anup Dargar (University of North Dakota),Charles Dierbach(Towson University),FrankDucrest (University of Louisiana at Lafayette),Erica Eddy (University of Wisconsin at Parkside),DeenaEngel (New Youk University), Henry A Etlinger (Rochester Institute of Technology),James Ten Eyck (MaristCollege), Olac Fuentes (University of Texas at EI Paso),Harold Grossman (Clemson University).BarbaraGuillot (Louisiana State University), Ron Hofman (Red River College,Canada), Stephen Hughes (RoanokeCollege),Vladan Jovanovic (Georgia Southern University),Edwin Kay (Lehigh University),Larry King(University of Texas at Dallas),Nana Kofi (Langara College,Canada),GeorgeKoutsogiannakis (lllinoisInstitute of Technology),RogerKraft(PurdueUniversityatCalumet),HongLin(DeVryInstitute),Dan Lipsa(Armstrong Atlantic State University),James Madison (Rensselaer Polytechnic Institute),Frank Malinowski(Darton College), Tim Margush (University of Akron),Debbie Masada (Sun Microsystems),Blayne Mayfield
XII(Oklahoma StateUniversity).John McGrath(J.P.McGrath Consulting),Shyamal Mitra (University of Texasat Austin),Michel Mitri (James Madison University),Kenrick Mock (University of Alaska Anchorage),JunNi (University of Iowa),Benjamin Nystuen (University of Colorado at Colorado Springs),Maureen Opkins(CA State University,Long Beach), Gavin Osborne (University of Saskatchewan),Kevin Parker (Idaho StateUniversity),Dale Parson (Kutztown University), Mark Pendergast (Florida Gulf Coast University),RichardPovinelli (Marquette University),Roger Priebe (University of Texas at Austin),Mary Ann Pumphrey (DeAnza Junior College),PatRoth (SouthernPolytechnic State University),Ronald F.Taylor (Wright StateUniversity),Carolyn Schauble (Colorado State University),David Scuse (University of Manitoba),AshrafShirani (San Jose State University),Daniel Spiegel (Kutztown University),Amr Sabry (Indiana University)Lixin Tao (Pace University),Russ Tront (Simon Fraser University),Deborah Trytten (University ofOklahoma),Kent Vidrine (Georage Washington University),Bahram Zartoshty (California State University atNorthridge),能够与Pearson出版社一起工作,我感到非常愉快和荣幸。感谢TracyDunkelberger和她的同事MarciaHorton,Margaret Waples,Erin Davis,Michael Hirsh,Matt Goldstein,JakeWarde,Melinda HaggertyAllisonMichael、ScottDisanno、IrwinZucker,感谢他们组织,开展和积极促进本项目,同时感谢RobertLentz的编辑工作。一如既往,感谢我妻子Samantha的爱、支持和鼓励。Y.Daniel Liangy.daniel.liang@gmail.comwww.cs.armstrong.edu/liangwww.pearsonhighered.com/liang誠成ARPDG
[目录Introduction to Java Programming,E42出版者的话22.12单元素和不可变的集合和图关键术语-42译者序本章小结.-42前言复习题-43.第21章泛型-46绵程练习题2引言.第23章算法效率-4921.2动机和优点23.1引言..-4921.3定义泛型类和接口...323.2大0符号..4921.4泛型方法..423.3举例:确定大0*50.-521.5原始类型和向后兼容.-5223.4分析算法的时间复杂度21.6通配泛型+652"-823.4.1分析二分查找算法21.7消除泛型和对泛型的限制1023.4.221.8实例学习:泛型矩阵类分析选择排序算法-52*14关键术语23.4.3分析插入排序算法53本章小结+1423.4.4分析汉诺塔问题+**+53·15复习题+++23.4.5比较常用的增长函数53编程练习题.1623.5实例学习:找出斐波那契数-5423.6实例学习:求最大公约数***-56Java集合框架第22章.*·17+--5923.7实例学习:找出素数22.1引言..-1723.8实例学习:最近的点对-6422.2集合-1723.9预览其他算法-6622.3Collection接口和Abstract-..-66关键术语*18Collection类本章小结..66-1922.4规则集复习题-6722.4.1散列集HashSet-19..-68编程练习题链式散列集LinkedHashSet.2322.4.222.4.3树形集TreeSet*-23第24章排序71..*-2524.1引言22.5比较器接口Comparator-7122.6线性表2624.2冒泡排序071.*307322.7线性表和集合的静态方法24.3归并排序22.8规则集和线性表的性能*.3224.4快速排序7622.9向量类Vector和类Stack*3324.5堆排序.7922.10队列和优先队列..3524.5.1对堆排序7922.11图*3724.5.2添加一个新结点-80