JAVA及其相关
-
Jakarta Commons经典实例Timotby M.O'Brien著内容简介目录长期以来,Java一直承诺向开发人员提供可重用、模块化和可移植的特性。要实现上层的软件结构开发者可对已有的框架和组件进行扩展,或按需定制,而无需从最底层的细节开始。一个典型的例子就是万维网联盟(W3C)定义的DOM接口。应用程序开发人员很少会去编写一个自己的XML解析器,但他们常常编写自己的组件,而这些组件的功能住一些自由软件库中已经实现了,只是开发者们不知道这些开源组件的存存罢了。本书采用O‘Reilly经典实例系列丛书中惯用的问题一求解模式概述了可供使用的软件库以解决上述问题。这里仅列出部分本书所涵盖的Commons项目和组件: · 对核心Java语言的扩展,包括字符串和日期操作、字符串编码和参数验证 · 对XML的支持,从解析、文档生成到使用搜索引擎索引XML文档所需的XPath · 模板化框架使你能够超越JSP的基本功能,不仅Web页面,甚至XML文件或者电子邮什都能够进行模板化 · 使用FTP、SMTP、POP、NNTP、特别是HTTP和WebDAV等功能所需的工具 · 使用Functor进行编程的新方法,包括使用predicate、closure、transformer和functor(替换控制结构,如for和while) · 新的collection和collection工具,包括LRU Map、predicated collection、适用于Java 1.4的typed collection、filtering iterator和set操作 · 对JavaBean的扩展,从bean到map的转换至序列化bean为XML字符串 · 提供对矩阵、复数、线性回归支持的新数学工具库 · 对Jakarta Commons组件和Maven、Ant协同使用的指导 · 日志、编码和对象池(o bject pools) 仅仅了解一两个有用的工具类是不够的,您必须意识到做出不同选择的可能,并对所选技术的全景有所了解。如果您希望能够摆脱令人手忙脚乱的编程方法并熟练掌握Java这门语言,《Jakarta Commons经典实例》正是您所需要的工具。 Preface1. Supplements to the Java 2 Platform1.1 Obtaining Commons Lang1.2 Joining the Commons-User Mailing List1.3 Getting the Commons Lang Source Code1.4 Automating the Generation of toString() Content1.5 Customizing Generated toString() Content1.6 Automating hashCode() and equals()1.7 Automating compareTo()1.8 Printing an Array1.9 Cloning and Reversing Arrays1.10 Transforming Between Object Arrays and Primitive Arrays1.11 Finding Items in an Array1.12 Creating a Map from a Multidimensional Array1.13 Formatting Dates1.14 Rounding Date Objects1.15 Truncating Date Objects1.16 Creating an Enum1.17 Generating Unique Numeric Identifiers1.18 Validation of Method Parameters1.19 Measuring Time2. Manipulating Text2.1 Setting Up StringUtils and WordUtils2.2 Checking for an Empty String2.3 Abbreviating Strings2.4 Splitting a String2.5 Finding Nested Strings2.6 Stripping and Trimming a String2.7 Chomping a String2.8 Creating an Emphasized Header2.9 Reversing a String2.10 Wrapping Words2.11 Testing the Contents of a String2.12 Measuring the Frequency of a String2.13 Parsing Formatted Strings2.14 Calculating String Difference2.15 Using Commons Codec2.16 Getting the Commons Codec Source Code2.17 Calculating Soundex3. lavaBeans3.1 Representing Beans Graphically3.2 Obtaining Commons BeanUtils3.3 Getting the Commons BeanUtils Source Code3.4 Accessing Simple Bean Properties3.5 Accessing Nested Bean Properties3.6 Accessing Indexed Bean Properties3.7 Accessing Mapped Bean Properties3.8 Accessing a Simple, Nested, Indexed, and Mapped Bean Property3.9 Determining the Type of a Bean Property3.10 Comparing Beans3.11 Copying Bean Properties3.12 Cloning a Bean3.13 Setting a Bean Property3.14 Testing Property Access3.15 Validating Beans with Predicates3.16 Creating a Map of Bean Properties3.17 Wrapping a Bean with a Map3.18 Creating a Dynamic Bean3.19 Getting and Setting Properties as Strings4. Functors4.1 Obtaining Commons Collections4.2 Getting the Commons Collections Source Code4.3 Reversing a Comparator4.4 Chaining Comparators4.5 Comparing Nulls4.6 Fixed-Order Comparison4.7 Using Simple Predicates4.8 Writing a Custom Predicate4.9 Creating Composite Predicates4.10 Transforming Objects4.11 Creating a Chain of Transformations4.12 Applying Conditional Transformations4.13 Writing a Closure4.14 Chaining Closures4.15 Modeling Conditional Statements with Closures4.16 Modeling Loops with Closures5. Collections5.1 Obtaining Commons Collections5.2 Using a Looping Iterator5.3 Iterating Over an ArrayList5.4 Filtering a Collection with a Predicate5.5 Iterating Through Distinct Elements5.6 Using a Bag5.7 Using a Buffer5.8 Creating a Priority Queue5.9 Using a Blocking Buffer5.10 Storing Multiple Values in a Map5.11 Retrieving a Key by a Value5.12 Using a Case-Insensitive Map5.13 Creating Typed Collections and Maps5.14 Constraining Map Values5.15 Constraining List Contents5.16 Transforming Collections5.17 Creating a Least Recently Used Cache5.18 Using a Lazy Map5.19 Counting Objects in a Collection5.20 Performing Set Operations5.21 Retrieving Map Values Without Casting6. XML6.1 Obtaining Jakarta Commons Digester6.2 Turning XML Documents into Objects6.3 Namespace-Aware Parsing6.4 Creating a Simple XML Command Language6.5 Variable Substitution and XML Parsing6.6 Obtaining Jakarta Commons Betwixt6.7 Turning Beans into XML Documents6.8 Customizing XML Generated from an Object6.9 Turning XML Documents into Beans7. Application Infrastructure7.1 Obtaining Commons CLI7.2 Parsing a Simple Command Line7.3 Parsing a Complex Command Line7.4 Printing Usage Information7.5 Obtaining Commons Configuration7.6 Configuring Applications with Properties Files7.7 Configuring Applications with XML7.8 Using Composite Configuration7.9 Obtaining Commons Logging7.10 Using an Abstract Logging Interface7.11 Specifying a Logging Implementation7.12 Obtaining Apache Log4J7.13 Configuring Log4J with a Properties File7.14 Configuring Log4J with XML8. Math8.1 Using Fractions8.2 Finding the Maximum and Minimum in an Array8.3 Using Number Ranges8.4 Generating Random Variables8.5 Obtaining Commons Math8.6 Calculating Simple Univariate Statistics8.7 Solving a System of Linear Equations8.8 Arithmetic with Complex Numbers8.9 Establishing Relationships Between Variables8.10 Estimating the Amount of Time Left in a Process9. Templating9.1 Obtaining Commons JEXL9.2 Using an Expression Language9.3 Invoking Methods in an Expression9.4 Externalizing Logic with an Expression Language9.5 Obtaining Jakarta Velocity9.6 Using a Simple Templating Language9.7 Writing Templates with Conditionals and Loops9.8 Using Macros in a Templating Engine9.9 Invoking Methods in a Template9.10 Obtaining FreeMarker9.11 Using a Complex Scripting Engine9.12 Accessing XML Documents from a Templating Engine9.13 Using Velocity in a Web Application9.14 Using FreeMarker in a Web Application9.15 Writing Templates in Eclipse10. I/0 and Networking10.1 Obtaining Commons IO10.2 Copying Streams, byte[], Readers, and Writers10.3 Closing Streams, Readers, and Writers10.4 Printing a Human-Readable File Size10.5 Copying Files, Strings, and URLs10.6 Deleting Directories Recursively10.7 Obtaining the Size of a Directory10.8 Touching a File10.9 Filtering Files10.10 Measuring Stream Traffic10.11 Splitting an OutputStream10.12 Obtaining Jakarta ORO10.13 Using Globs and Perl5 Regular Expressions to List Files10.14 Obtaining Commons Net10.15 Writing an FTP Client10.16 Sending Mail with SMTP10.17 Checking a POP3 Mailbox11. HTTP and WebDAV11.1 Obtaining Jakarta HttpClient11.2 Getting Jakarta HttpClient Source Code11.3 Performing an HTTP GET11.4 Sending Parameters in a Query String11.5 Retrieving Content with a Conditional GET11.6 DebuggingHTTP Communications11.7 Making an HTTP POST Request11.8 Sending POST Data from a File11.9 Uploading Files with a Multipart POST11.10 Basic Authentication11.11 NTLM Authentication11.12 Working with Cookies11.13 Handling Redirects11.14 SSL11.15 Accepting a Self-Signed Certificate11.16 Obtaining Jakarta Slide11.17 Connecting to WebDAV Resources11.18 Modifying a WebDAV Resource12. Searching and Filtering12.1 Obtaining Commons JXPath12.2 Querying an Object Graph with XPath12.3 Search a Collection of Simple Objects12.4 Applying XPath Queries to Complex Object Graphs12.5 Obtaining Jakarta Lucene12.6 Creating an Index of XML Documents12.7 Searching for a Specific Term in a Document Index12.8 Finding the Frequency of Terms in an IndexIndex -
Java软件结构(美)John Lewis,(美)Joseph Chase著;任学群译;任学群译《Java软件结构:设计和使用数据结构(第2版)》关注的是数据结构和算法背后的核心设计问题。在展现每种集合时,本书都是先探讨该集合的一般概念,接着再讨论该集合在问题求解中的用法,最后讨论了各种候选实现方案。随后本书还比较、对比了这些实现方案。这种一致的陈述风格使得学生们更容易体会那些能带来优秀面向对象软件设计的基本概念。本书特点:·使用Java5.0:本书中每个集合的设计和实现都用到了泛型;泛型是Java编程语言中最近添加的一种强大工具。·关注与面向对象设计:本书前面几章都着眼于这一重要的主题,随后它就像一种重复旋律贯穿于本书始末。·提供了完整的例子:本书有4项新的案例研究,它们探讨了一些有趣的软件系统的面向对象设计和完整实现。·涵盖了图形用户界面主题:选择了一些例子,为那些希望涉足图形用户界面材料的读者演示了GUI的开发。 -
Java程序设计基础与应用张飏,王琳主编;技能型紧缺人才培养规划教材编写委员会编写本书是专为落实教育部和信息产业部《关于确定职业院校开展计算机应用与软件技术专业领域技能型紧缺人才培养培训工作的通知》和《职业院校计算机应用与软件技术专业领域技能型紧缺人才培养指导方案》精神而编写的标准的职业院校教材。本书内容:本书由11章、6个附录及部分习题参考答案组成。主要内容包括Java语言入门知识;Java语言基础知识,包括语言基础和控制语句等;Java语言的核心知识,包括面向对象编程、类的继承与多态、异常处理、多线程编程、常用包等;GUI设计基础、JDBC数据库访问、Java的Web应用;在附录中给出了Java中的关键字和各类方法的汇总;最后是部分习题参考答案。本书特点:1.全书以实例的形式讲解,化抽象为具体,理解轻松,容易掌握;2.高度体现理论的适度性,实践的指导性,应用的完整性;3.语言精练,结构清晰,按应用由浅入深,手把手引导;4.书中所有实例均上机调试通过,并提供专门的网上下载,方便读者学习和应用;5.课后配有练习,方便检测、应用和巩固学习效果。适用范围:全国职业院校计算机程序设计课程及其相关专业教材。 -
面向对象程序设计——Java李金铭等编著本书旨在全面而深入地介绍Java语言特点及其面向对象的特性。全书共分15章。书中的内容涵盖了Java语言的核心概念和知识。包括Java语言基础、面向对象编程、异常处理、图形化用户界面、输入/输出、多线程、Applet以及Java语言的新特性:断言等等。除了Java语言本身,本书有意增加了Java的应用部分。介绍了网络编程、J2EE架构,还重点着墨于JSP动态网站开发技术。这样,读者不仅能从本书学到Java语言基础还能掌握实用的开发技术。通俗易懂的文字、典型翔实的例子将使Java不再令人生畏。读者将由浅入深逐步领略到Java世界的奥秘。本书适合于作为大专院校计算机与相关专业的教材,及自学Java语言的参考书,也可供计算机技术人员参阅。同时,本书涵盖了SUN公司SCJP认证的考点,可以作为SCJP认证的复习资料。 -
Java应用与开发案例教程徐谡主编;徐立等编著全书内容分为上篇、中篇和下篇3篇,共16章,以列举案例的方式完整地诠释了Java语言。 本书根据知识的深浅程度采用渐进式的方式进行介绍,语言严谨、求实,书中案例有典型性、知识面覆盖广、实用性强,内容条理清晰、层次分明,书中还穿插了许多计算机语言应用中常见问题的解决方法和使用技巧,系统化的学习、精彩的案例,再加上技巧集锦的穿插,必定会使本书成为您的学习助手和朋友。 本书已被四川众多高校采用,作为全国大学计算专业本科学生、专科学生、研究生、理工科其他专业本科学生、专科学生和研究生学习的教材。本书以循序渐进的方式介绍了Java语言,内容涵盖了Java语言的基本知识和高级应用。 语言严谨、求实,书中案例有典型性、知识面覆盖广、实用性强,内容条理清晰、层次分明。书中还穿插了许多计算机语言应用中常见问题的解决方法和使用技巧。系统化的讲解,精彩的案例,再加上技巧集锦的穿插,必定会使本书对读者大有裨益。 为便于读者巩固所学内容,每章后都会有习题。 本书融合了教师多年的教学精华,又博采了多家经典书籍之长,适合作为高等院交计算机及相关专业的教材,也可作为读者自学用书。 -
Java中间件开发技术李华飚,郭英奎等编著本书使用丰富的案例介绍了使用Java技术进行中间件编程的方法及技巧,包括JSP,JavaScrvlet、JDBC数据库开发、使用JavaMail开发邮件应用程序、RMI(远程方法调用)、EnterpriseJavaBeans开发、使用CORBA以及JavalDL进行开发,JNDI编程、JMS应用开发、JavaXML编程以及Java开发Web服务等.本书的内容均为目前的热点和读者所关注的问题,也包括对很多人来说悬而未决的难题.书中的许多案例甚至可以不加修改就应用到开发实践中.本书适合专业的Java程序员阅读,也可以作为正在进行Java开发的各类程序员的必备参考书。即使是不擅长这一领域的开发人员,通过详细的实例讲述,也可以循序渐进地掌握本书的内容。 -
Java程序设计(美)James Cohoon,(美)Jack Davidson著;黄晓彤等译;黄晓彤译前言如今,Java非常适合选择作为介绍性编程的课程。其理由很多:互联网的使用持续爆炸性地增长;面向Web应用的程序已成为软件的主流,而Java正是为互联网编程的语言;Java还提供了成熟的软件开发工具、以及大量包括多线程和高级图形用户界面在内的各种应用程序的开发包;而体系结构中立的设计使Java具有很好的可移植性。近年来,安全与可靠的重要性有了新的意义,Java对安全与可靠的支持与其自身的设计融为一体。面向对象使Java成为现代软件工程和编程概念的良好教学载体。背景从20世纪90年代早期以来,在国家科学基金会(NationalScienceFoundation)的大力支持下,本系(弗吉尼亚大学计算机科学系——译者注)发展、提炼并扩展了新的计算机科学的课程。在考察本课程与同类学校的课程的过程中,经常使用的一些重要原则是:*使用一种课堂以外被广泛接受的编程语言。*使用现代软件开发工具。*鼓励团队合作。*按照软件工程原则开发系统。*鼓励重用现有的库和工具。*用图形用户界面实现软件的输入、输出。*选用适合各种听众的教学法和例子。本书的内容及其补充材料都用来支持这些原则的发展。计算机科学中的许多重要概念和问题,在很好地理解什么是程序以及如何写程序之前,不会被赏识。遗憾的是,学会编程很困难。如同要写好文章一样,好的编程需要多年的实践。教授编程在很多方面与教授写作相似。在学习写作的过程中,学生通过阅读好散文的范例,反复地练习写作,学习怎样组织构思,以实现最有效的表达。学生从写作、编辑一两个段落开始,直到能写出很长的文章,如散文、短故事和报告。学生们的写作技能也随着不断地增长。教授程序设计的方法与教授写作类似。贯穿本书,介绍并讨论了很多好的和不好的例子,自我检测和程序练习,给学生提供了设计、组织和编写代码的练习机会。另外,还提供了帮助学习修改代码这个实用技能的例子,这部分通过专供学生修改的代码来实现。这种方法很有效,因为,这样能迫使学生成为积极的参与者,即学生一定要去阅读并理解所提供的代码。为支持这一努力,本书所使用代码的电子版在本书的网站上可以找到。本书的目的本书的目标是成为学生的第一门编程课程,而且适合于各种不同学科的人。本书假定读者以前没有编程技能,要求的数学和科学知识,相当于大学一年级学生的水平。本书的主要目的是:*向学生介绍Java编程语言;*展示和鼓励使用面向对象范例;*有效地解决问题的技术示范;*使学生从事现实世界中的例子;*教给学生软件工程设计的概念;*向学生介绍Java的核心类库和图形库;*给学生组织和编写代码的实践;*传授学生修改现有代码的实际技能;*给出好的,以及不好的编程指导性例子;*提供测试和调试的有效内容。本书的特点及其原因本书深入覆盖了介绍性课程应有的全部资料,还介绍了许多通常包含在后续课程中的资料,并对余下的问题指出要点。章节的篇幅和安排提供了教师讲解内容和时间安排上的灵活性。章节的内容和扩展的附录使有能力的读者可以更上一层楼,并把本书当作一个有价值的参考资源。本书的一些特点如下所述。*详细介绍面向对象的概念:本书实施了“适时对象”方法。在过去的十多年里,作者把面向对象的范例用于介绍性的课程,已经证明Java可以成功地介绍给初学编程的人。并了解到,将自定义的类推迟到课程末尾,会限制学生掌握面向对象的编程范例的核心知识,会对面向对象编程的其他重要原则形成肤浅的认识。因此,本书很早就介绍了对象表示方法。使学生们从一开始就可使用标准包中的对象,很快对一些有兴趣的问题开发出有意义的程序。在坚固基础的介绍后,提出了基本类和面向对象设计。在探索控制结构之后,对方法、类和面向对象设计进行了更深一步的介绍。*注重解决问题能力:许多初学者面临的最大障碍,是不知道解决问题的基本方法。对于这个问题,本书在第1章介绍了解决问题的基本技能,在以后的每一章里,把一些新概念用于满足不同读者要求而选择的问题中。学生们先学习这些有效解决问题的例子,然后再提供给他们独自解决类似问题的机会。*介绍软件工程设计的概念:本书通过对问题的研究和软件项目来介绍软件工程设计的概念。除了大量的小例子外,每一章都对一个或多个问题的细节进行考虑。在某种程度上,都有面向对象的分析和设计,以及实现设计算法的开发。*测试和调试的内容:程序员的一项重要技能,是对自己设计和实现的程序如何进行测试和调试。第13章介绍了测试和调试方面重要的软件工程概念和实践。这一章讨论的测试技术,如单元测试、整体测试和代码检查。调试的一节,注重教会学生怎样用科学方法去找出错误。该章还讨论了初学者常犯的错误和怎样识别它们。在介绍了控制结构之后,此章的内容可以在授课教师认为合适的时候讲解。*生动的实例:学生们喜欢从真实生活中遇到的有趣情况来学习,多元化的研究和编程方案来源于不同的主题,包括:身体锻炼、兜售信息、医疗诊断、统计分析、性格类型分析、数据可视化、图形、娱乐和动画。通过这些不同的例子,本书展示了程序员可以怎样参与日常生活并为之做出贡献。*只用标准Java类:本书在介绍Java编程概念时,只使用标准的Java类。特别没有用外界购入或由作者自己写的类。选用标准的类和技术,这样做,使初学者容易理解。*实验室手册:在介绍性课程中,对采用实验室教学的学校,本书配有打印好的实验室手册。实验室资料提供了动手的经验,以强化Java编程的概念和技能。需要实验手册的读者请与McGraw-Hill出版社的当地代表处联系。*编程和风格的技巧:除了解释Java和面向对象编程,本书还对怎样成为一个更好、更有见地的程序员和设计者提出了忠告。在诸如避免常见的编程错误、写可读性好的代码以及遵循软件工程原则等方面,有一些很重要的技巧。*自测题、练习题和软件方案:每章都提供带有答案的自测题,以便学生能评价自己对重要概念的技能掌握。本书还提供了数百道练习题,授课教师可以通过出版社得到项目。在第1章Java的基本概念介绍之后,第2章和后续的每章都提供了编程方案,来练习本章的概念。*参考附录:附录C、D和E提供近两百页对标准JavaAPI的描述,这使得本书在课程结束后,可以成为一个手头的参考手册。章节概述和特点引言每章的开始都有一个简短介绍,以引起学生的注意,并为本章的内容做好准备。既强调主题的现时重要性,也强调每章主题在更广泛的编程上下文中的地位。目标介绍之后,有一个本章目标的列表,给学生提供了一套明确的学习目标。这一列表,使学生在学习本章内容时,可用来衡量自己的进展,也可在学习章节结束时,用来评价自己理解的程度。还可作为授课教师准备考试和小测验的指导。图标和信息栏图标和带阴影的信息栏显示了警告、风格技巧、推荐阅读材料和属于Java语言本身的信息。表明关于编程的警告,通常是怎样避免常见编程错误的窍门。表明与编程风格有关的资料。表明与Java程序语言有关的资料。表明编程窍门,或更具体的讨论资料,或现有论题的补充。代码格式化特殊格式的代码清单,使代码部分易于查找和参考。每一个完整的清单是按照所在章节中的位置编序。代码段与周围的文字清晰地分开,而且有很容易识别的作者注释。UML图用UML图帮助阐明类之间的关系,同时,也使学生熟悉这个广泛应用的符号系统。案例学习每章都有多个案例学习,用来讲解有效解决问题的技能,强化面向对象编程和软件工程设计概念。每个案例学习的开始,都突出明确的学习目标,并用特殊的图标强调解决问题的步骤。案例学习的讲解可以选择,只应用本章的概念,而不介绍新概念。章节评论每章结尾,都对本章的要点做了全面的、逐点的总结。自测题每章结尾,都有带答案的自测题。自测部分的目的是帮助学生衡量自己是否掌握了本章的目标,并强化本章的关键概念。编程项目除了第1章介绍背景知识外,以后每章都至少有一个有趣的编程项目学习,作为一类作业的方式给出。编程项目学习包括确定训练范围;收集电子邮件的地址;医疗诊断;汽车贷款计算器;模拟鱼缸等。练习每章结尾的练习部分提供需要努力解决的各种问题。章节概要*第1章:背景知识。包括计算机结构、软件、软件工程原则、面向对象软件的开发、问题求解。*第2章:Java基本概念。包括程序组织、main()方法、注释和空格、类、关键词、标识符和命名习惯、方法、程序执行、SDK、常量、变量、操作、简单类型、操作符、优先级、交互式程序、简单变量赋值。*第3章:使用对象。包括String(字符串)、引用变量、null、插入、截取和连接字符串、引用赋值、String方法。*第4章:类。介绍用户定义的类、实例变量、构造方法、实例方法、检查员(inspect-tors)、变异器(mutators)、简易器(facilitators)、简单图形。*第5章:分支语句。包括布尔代数和真值表、逻辑表达式、布尔类型、布尔值相等和操作符顺序、检测浮点数相等、操作符优先级、短路评估、if语句、if-else语句、字符串和字符的测试、排序、switch语句。*第6章:循环。包括while语句、简单的字符串和字符处理、for语句、索引变量范围、do-while语句。*界面图形:基于GUI的编程。包括图形用户界面、swing、awt、基于事件的编程。*第7章:用方法和类编程。包括参数传递、控制的调用和流程、类变量、范围、局部范围、名字重用、方法重载、方法重写、equals()、toString()、clone()。*第8章:数组和集合。包括一维数组、定义、元素的访问和操纵、显性初始化、常量数组、成员、数组处理、方法、程序参数、排序、搜索、多维数组、矩阵、集合框架、ArrayList、集合算法。*第9章:继承和多态。包括面向对象设计、重用、父类、子类、单一继承、super、is-a(是一个)、has-a(有一个)和uses-a(用一个)的关系、控制继承、默认、protected和private成员、多态、抽象的父类、接口的层次。*界面图形:基于GUI的编程。在个人性格识别和微笑竞猜游戏的案例中,学习图形用户界面的设计和实施。*第10章:异常,即反常事件。包括异常、抛出(throwing)、尝试(trying)、捕获(catching)、异常处理器、finally、流的规范。*第11章:递归问题的求解。包括递归方法、排序、搜索、可视化。*第12章:线程,即多个独立的控制流程。包括进程、线程、调度和重复线程、Timer、TimerTask、Thread、Date、Calendar、JOptionPane、休眠、激活、系统软件。*第13章:测试和调试。包括软件开发中的代码评估、黑箱与白箱测试、检查、测试工具、说明覆盖、单元、整体和系统测试、回归测试、边界条件、路径覆盖、调试。*附录A:表和操作符。包括Unicode字符集、保留字、操作符和优先级。*附录B:数字表示方法。包括二进制数字、十进制数字、2的补码、转换。*附录C:Applets。即Applet编程。*附录D:标准Java包。包括java.io、java.lang、java.math、java.net、java.text、java.util。*附录E:标准Java图形包。包括java.applet、java.awt和javax.swing。界面图形通过个人观察和与同事们交流,发现不是所有的介绍性编程课程都介绍图形用户界面(GUIs),也许时间不允许介绍swingAPI和事件引发程序,因此,分成两个阶段来介绍图形编程,作为选讲内容。然而,如授课教师想强调这部分,在第4章介绍了类之后,就可以讲解GUI。应区分图形用户界面和图形图像的生成。Java标准APIs可以很容易地显示矩形、直线、圆、椭圆、三角形和多边形。它们的显示几乎与控制窗口显示文字一样容易。在其他章节的例子中,都独立地用到了这些Java特性,这些例子大部分也是可选讲的。然而,经验证明,学生们都喜欢生成图像,而且,当例子有可视化属性时,面向对象编程的概念会易于理解。用好本书本书所涵盖的内容比较多,可能一门课程讲授不完。附加的内容是有准备的,即可让授课教师在编程和软件开发方面选择主题。这本书是为灵活教学而设计的。例如,如果授课教师想推迟对类的介绍,可以先讲解控制结构的大部分内容(5.1~5.9小节和6.1~6.5小节);类似地,如果授课教师想在类之前介绍数组,数组的基本内容(8.1~8.3小节和8.7小节),可以在讨论类之前进行。除了9.2小节中的例子,对继承的讨论可以放在数组之前。在介绍了类与数组之后,可以随时开始第13章测试和调试的内容。下面是课程的布局。每周主题阅读1计算和面向对象设计第1章2编程基础第2章3对象的操纵第3章(3.1~3.5小节)4类的基本概念第4章4~5条件语句第5章(5.1~5.7、5.10小节)5~6循环语句第6章(6.1~6.5小节)7图形用户界面界面图形:I8~9类第7章10~11数组和列表第8章12~13继承和多态第9章13异常第10章(10.1小节)14测试和调试第13章(13.1~13.2小节)补充资料出版商的网站www.javaprogramprogramdesign.com提供了书中所有例子的源代码和数据文件,还有一整套PowerPoint和PDF格式的幻灯片,以及对不同Java编程IDEs的介绍。其他教学辅助材料可以在网站http://www.cs.virginia.edu/javaprogramdesign上找到。关于作者JamesCohoon是弗吉尼亚大学计算机科学系的教授,并曾经是AT&T贝尔实验室的技术人员,他从明尼苏达大学取得博士学位后就加入了这里。他两次被系里提名为大学最佳教师奖的得主。1994年,Cohoon教授获得Fulbright奖,去德国讲授面向对象编程和软件工程。Cohoon教授的研究兴趣包括算法、电子系统的计算机辅助设计、优化策略和计算机科学教育。他在这些领域发表了70多篇文章。他是美国计算机学会(ACM)、ACM设计自动化专业组(SIGDA)、ACM计算科学教育专业组(SIGCSE)、电气和电子工程师协会(IEEE)和IEEE电路与系统协会等组织的成员。他同时担任ACM委员会、SIG管理执行委员会的委员,并曾担任过ACM出版社董事和SIGDA的主席。他的联系地址:cohoon@virginia.edu,个人主页:http://www.cs.virginia.edu/cohoon。JackDavidson也是弗吉尼亚大学计算机科学系的教授,他从亚利桑那大学获取博士学位后就来到这里工作。Davidson教授因在教学中的创新而获得了NCR教员创新奖。Davidson教授的研究兴趣包括编译器、计算机结构、系统软件和计算机科学教育。他在这些领域发表了80多篇文章。他是美国计算机学会(ACM)、ACM编程语言专业组(SIGPL-AN)、ACM计算机结构专业组(SIGARCH)、ACM计算科学教育专业组(SIGCSE)、电气和电子工程师协会(IEEE)和IEEE计算机学会等组织的成员。从1994年到2000年,他是ACM在编程语言和系统方面的王牌杂志:TransactionsonProgrammingLanguagesandSystems的副主编。他是1998年程序语言设计和实现大会(PLDI'98)的主席,2000年SIGPLAN语言、编译器和嵌入系统工具工作会议(LCTES2000)的联合执行主席。他的联系地址:jwd@virginia.edu,个人主页:http://www.cs.virginai.edu/~jwd。进一步阅读下列是Java语言的主要参考书:*KenArnold,JamesGosling,andDavidHolmes,TheJavaProgrammingLanguage,ThirdEdition,Addison-WesleyPubCo;ISBN:0201704331,June2000.*BillJoy(Editor),GuySteele,JamesGosling,andGiladBracha,TheJavaLanguageSpecification,SecondEdition,Addison-Wesley,ISBN:0201310082,June2000.下面是关于标准库和更进一步的面向对象设计及程序开发的资源*DavidM.Geary,GraphicJava1.2,MasteringtheJFC:AWT,Volume1,PrenticeHall,ISBN:0130796662;September1998.*DavidM.Geary,GraphicJava2,Volume2,Swing,PrenticeHall,ISBN:0130796670,March1999.*JoshuaEngel,ProgrammingfortheJavaVirtualMachine,Addison-Wesley,ISBN:0201309726,June1999.*CayS.HorstmannandGaryCornell,CoreJava2,VolumeI,Fundamentals,PrenticeHallPTR,ISBN:0130894680,December2000.*CayS.HorstmannandGaryCornell,CoreJava2:VolumeII,AdvancedFeatures,PrenticeHall,ISBN:0130927384,December2001.*MatthewRobinsonandPavelA.Vorobiev,Swing,ManningPublicationsCompany;ISBN:1884777848,December1999.*StephenA.SteltingandOlavMaassen,AppliedJavaPatterns,PrenticeHall;ISBN:0130935387,December2001.*SunMicrosystems,JavaLookandFeelDesignGuidelines:AdvancedTopics,AddisonWesleyProfessional;ISBN:0201775824,December2001.*AlVermeulen(Editor),ScottW.Ambler,GregBumgardner,EldonMetz,AlanVermeulen,TrevorMisfeldt,JimShur,andPatrickThompson,TheElementsofJavaStyle,CambridgeUniversityPress;ISBN:0521777682,January2000.*JohnZukowski,JavaCollections,APress;ISBN:1893115925,April2001.感谢我们感谢弗吉尼亚大学为本书的完成提供了环境。我们要特别感谢JackStankovic,他的不懈地努力使得计算机科学系处于国内领先的地位。我们感谢JennaCohoon、JoanneCohoon和TomHorton的评论,我们还要感谢HannahCohoon对鱼的艺术设计和JJCohoon对图标的艺术设计。我们感谢为本书的出版做出贡献的McGraw-Hill的全体员工。特别地,我们感谢BetsyJones的支持与鼓励;TomCason的明智建议;KayBrimeyer的幕后产品管理技能;DavidHash对艺术和封面设计队伍的领导;PatSteele的编辑和DawnBercier的市场创意。我们向下列人员提出特别感谢:我们的编辑KellyLowery,她支持、指导并关注了这一项目的全过程;我们的开发编辑MelindaDougharty,她管理并汇总了审阅过程;还有MaryCahall和她的组织能力。 -
J2ME移动设备程序设计胡虚怀,杨志和,李焕编著J2ME是“一种以广泛的消费性产品为目标的、高度优化的Java运行时环境"(Sun公司定义)。J2ME的MIDP规范将成为未来无线移动通信设备应用开发的事实上的标准。本书通过对MIDP2.0规范的全面剖析,重点介绍在资源受限的CLDC设备上开发各种移动应用程序的方法。全书由10章组成,内容包括概论、连接设备与连接受限设备的配置和简表、MIDP编程基础、J2ME应用开发环境与工具、MIDP高级用户界面设计、MIDP低级用户界面设计、MIDP游戏程序设计、MIDP多媒体程序设计、MIDP数据管理程序设计、MIDP网络程序设计等,基本覆盖J2ME平台开发的各个方面的技术。在编写组织上采用了任务和案例驱动方式,实例众多,易于理解。另外,每章后都配有思考题。本书适合有一定Java语言基础的程序设计人员学习使用,既可作为计算机、网络通信等专业本科生、研究生的教材,也可供工程技术人员自学参考之用。本书前言前言近年来,随着计算机、通信、网络和微电子技术的发展,智能消费类电子产品的种类和数量迅速增长,为无线数据业务和移动电子商务领域带来了巨大的应用前景。人们利用种类繁多且功能不断强大的移动设备,通过无线接入技术方便地沟通联系、交流信息,正逐步实现任何时间、任何地点以任何方式进行通信这一理想目标。为了满足这一发展趋势的需求,美国Sun公司不失时机地与世界主要消费类设备制造商合作,为移动电话、双向寻呼机、个人数据助理、智能卡和车载导航系统等资源受限的无线移动类设备,共同创造了一个高度可移植、安全、小容量内存下的Java应用程序开发环境。这就是Java2的微缩平台J2ME(Java2,MicroEdition)。Sun公司将J2ME定义为“一种以广泛的消费性产品为目标的、高度优化的Java运行时环境”。J2ME由于沿袭了J2EE、J2SE中Java虚拟机的思想,遵循“一次编写,到处运行”的编程理念,将Java语言与平台无关的特性移植到小型电子设备上,允许设备之间共享应用程序。因此,自从1999年6月在SunONE(OpenNetEnvironment,开放式网络环境)的JavaOneDeveloperConference大会上推出之后,J2ME迅速占领了小型移动设备应用开发的主要市场。J2ME的成功在于提供了易于理解的、可动态扩展的应用程序开发平台,为设备制造商、网络运营商和内容提供商创造了新的市场机会,同时也为软件开发者开辟了新的天地,使得开发真正的移动应用成为可能,从而让移动设备更具个性化。J2ME事实上是一系列的技术和规范的总称,其核心是Java社团(JavaCommunityProcess,JCP)的两项标准化工作。即连接受限设备配置(ConnectedLimitedDeviceConfiguration,CLDC)和移动信息设备简表(MobileInformationDeviceProfile,MIDP)两项规范。目前,这两项规范的最新版本为CLDC1.1和MIDP2.0。全世界有包括摩托罗拉、诺基亚、西门子、爱立信、NTTDoCoMo、Palm和RIM在内的60多家消费类设备制造公司和移动通信运营商直接参与了此规范的制定工作。尽管J2ME中还有一个针对高端消费类电子设备(如电视机顶盒)的连接设备配置(ConnectedDeviceConfiguration,CDC)规范,但我们更关注大量普及的属于低端消费类电子设备的无线移动设备(例如手机)的应用。因此,本书集中讨论特别为这类产品设计的CLDC+MIDP标准。本书的目标是希望读者尽快掌握J2MEMIDP应用程序的开发技术,因此在编写内容的组织上采用了任务驱动方式,实例中尽量使用完整且简洁的源程序,以便于读者理解。读者以本书各章中的案例作为学习引导,能够全面提高无线移动设备应用系统的开发设计能力。为了兼顾作为教材的用途,各章节内容的安排从易到难,即从基本概念到程序开发,从简单类库到复杂接口,力求既系统完整又突出操作应用。并且每章后配有思考题,以帮助读者巩固所学的内容。在本书的撰写过程中,作者参阅了大量的相关书籍和报刊,同时从互联网上直接或间接引用了一些学者的文章、案例和图表,而这些资料的出处难于一一列举出来,所以在参考书目中仅列举了一部分,在此向所有在本书中被引用资料的作者表示衷心的感谢。由于J2MEMIDP技术发布时间不久,涉及的内容广泛,加之作者学识和编写时间所限,难免存在错误及疏漏之处,恳请读者批评指正。作者在本书的研究工作中得到湖南省自然科学基金项目的资助(项目编号04JJ3064),在此一并表示感谢。 -
Java编程基础、应用与实例(韩)徐明浩著;武传海译;武传海译本书通过丰富的实例讲授Java语言的基础和程序设计方法。全书共22章。第1到19章分别介绍了Java语言基础知识、对象和类的概念、Java语言的基本语法、流程控制、数组、对象和方法、继承、抽象类和接口、内隐类、异常处理、API、输入输出、线程、AWT程序设计和事件处理、Java 2D图形、Applet等内容。第20章通过3个完整的实例介绍了Applet游戏的设计。第21章通过一个游戏实例介绍网络程序设计基础。第22章用五子棋的实例介绍了网络游戏的制作。书中每章后面的“巩固练习”部分,给出了精心挑选的练习题,帮助读者巩固本章所学知识,进一步提高Java编程水平。附录部分给出了书中“独立完成”练习的提示,说明了JCreator的安装和使用方法,并且对Swing和JDBC程序设计方法进行了简要说明。本书的示例能够把Java程序设计原理以浅显易懂的方式呈现给读者。后3章注重对Java热门应用领域的介绍和讨论,通过完整的例子教给读者Applet游戏和网络游戏的制作方法。本书适合Java编程语言初学者阅读。 -
WebLogic权威指南Jon Mountjoy,Avinash Clugh著由于Java编程语言已趋于成熟,许多开发者转而借助Java来满足他们对于企业级应用程序开发的需要。在大多数Java应用程序中,复杂事务管理、消息传递、XML和Web服务支持、命名及目录服务、数据库管理等不仅是其重要的组成部分,而且也是这些应用程序实现自身功能的基础。因此,Java开发人员一直在努力寻求能为企业级应用程序的开发提供上述服务的通用应用服务器,在众多竞争者中,BEA公司的WebLogic服务器处于领先地位。《WebLogic权威指南》全面介绍了BEA WebLogic。无论你是一名开发人员、管理人员还是系统架构师,阅读此书你会发现,你能更深入地使用WebLogic,更快地进行优化,以及获得更好的性能。本书详细介绍了WebLogic对J2EE领域中标准API的支持以及对核心API的扩展;而对于众所周知的API,比如servlet,JSP以及EJB,本书没有花费过多的篇幅。本书包含的内容有: · 运用servlet,JSP以及WebLogic自定义的JSP标记和类库来开发J2EE Web应用程序。 ·在WebLogic web容器中配置和部署应用程序。 ·对WebLogic servlet引擎和HTTP服务器的高级管理。 ·在WebLogic环境中创建、部署和优化EJB。 ·在多服务器环境中安装和管理WebLogic,包括负载均衡、失效转移、会话管理和会话复制的细节。 ·设置SSL并使其可为WebLogic应用程序所用。 ·应用各种WebLogic安全模式。 ·使用WebLogic XML注册文件,Web服务框架,日志功能,以及国际化API。 ·利用JMX和SNMP管理WebLogic。
