标题：Java 7程序设计
基本信息
作者：（加）Budi Kurniawan 著  Java 7程序设计
ISBN(书号)：978-7-111-39030-5 
丛书名：华章专业开发者丛书 
出版日期：2012-08 
版次：1/1 
开本：16 
定价：￥79.00 
内容简介
本书由全球资深Java技术专家、高级Java企业级应用架构师、《How Tomcat Works》作者亲自执笔，权威性毋庸置疑。它以最新的Java 7为基础，全面讲解了Java编程语言、Java面向对象技术和Java核心类库三大主题，包含大量案例，是系统学习Java 7程序设计的Bible级著作。本书是Java SE 7程序设计全面、系统的教程，涵盖Java编程语言、Java OOP和Java核心类库3大主题。本书首先介绍了Java 7的语法、语句、对象和类、核心类、继承、错误处理等基础知识，帮助读者快速入门Java 7；然后深入解析了接口和抽象类、枚举、集合框架、泛型、输入输出、嵌套类和内部类等内容，掌握这部分内容有助于深入理解Java的底层原理；接着阐述Swing的基础和高级知识、多态、注解、国际化、Java网络、JDBC、Java线程、并发工具、安全、Java Web应用程序、JavaServer Pages、Javadoc，以及应用程序部署等内容，掌握这部分内容有助于提升编程技能。
本书结构清晰、环环相扣，便于读者高效地学习Java语言。本书是打造专业级Java程序员的参考读物，也可以作为计算机相关专业的教材。[1]
目录
译者序
前　言
第1章　初识Java1
1.1　第一个Java程序1
1.1.1　编写Java程序1
1.1.2　编译Java程序1
1.1.3　运行Java程序2
1.2　Java编码规范2
1.3　集成开发环境（IDE）3
1.4　小结4
习题4
第2章　语言基础5
2.1　ASCII和Unicode5
2.2　分隔符7
2.3　基本类型7
2.4　变量8
2.5　常量10
2.6　字面量11
2.6.1　整数字面量11
2.6.2　浮点字面量12
2.6.3　布尔字面量13
2.6.4　字符字面量13
2.7　基本类型转换14
2.7.1　扩大转换14
2.7.2　缩小转换15
2.8　操作符15
2.8.1　一元操作符16
2.8.2　算术操作符18
2.9　注解24
2.10　小结25
习题25
第3章　语句26
3.1　Java语句概述26
3.2　if语句27
3.3　while语句29
3.4　do-while语句30
3.5　for语句31
3.6　break语句34
3.7　continue语句35
3.8　switch语句35
3.9　小结36
习题36
第4章　对象和类38
4.1　什么是Java对象38
4.2　Java类39
4.2.1　域40
4.2.2　方法40
4.2.3　UML类图中的类成员42
4.3　创建对象42
4.4　关键字null43
4.5　内存中的对象43
4.6　Java包46
4.7　封装和访问控制47
4.7.1　类访问控制修饰符47
4.7.2　类成员访问控制修饰符49
4.8　关键字this51
4.9　使用其他类52
4.10　final变量53
4.11　静态成员54
4.12　静态final变量55
4.13　静态导入56
4.14　变量作用域57
4.15　方法重载58
4.16　赋值传递还是引用传递59
4.17　加载、链接和初始化59
4.17.1　加载60
4.17.2　链接60
4.17.3　初始化60
4.18　对象创建初始化61
4.19　对象的比较64
4.20　垃圾回收器64
4.21　小结64
习题65
第5章　核心类66
5.1　java.lang.Object66
5.2　java.lang.String67
5.2.1　比较两个String对象68
5.2.2　字符串字面量69
5.2.3　字符转义69
5.2.4　switch中的String 69
5.2.5　String类的构造器70
5.2.6　String类的方法71
5.3　java.lang.StringBuffer和java.lang.StringBuilder73
5.3.1　StringBuilder类的构造器73
5.3.2　StringBuilder类的方法74
5.4　基本类型包装74
5.4.1　java.lang.Integer75
5.4.2　java.lang.Boolean75
5.4.3　java.lang.Character76
5.5　数组76
5.5.1　迭代数组78
5.5.2　修改数组大小78
5.5.3　将String数组传递给main80
5.6　java.lang.Class80
5.7　java.lang.System81
5.8　java.util.Scanner85
5.9　装箱和拆箱85
5.10　可变参数85
5.11　格式和printf方法86
5.12　小结87
习题87
第6章　继承88
6.1　继承概述88
6.1.1　关键字extends88
6.1.2　is-a关系89
6.2　可访问性90
6.3　方法覆盖91
6.4　调用超类的构造器92
6.5　调用超类的隐藏成员94
6.6　类型转换94
6.7　Final类95
6.8　关键字instanceof95
6.9　小结96
习题96
第7章　错误处理97
7.1　捕捉异常97
7.2　没有catch的try99
7.3　捕捉多个异常99
7.4　try-with-resources语句99
7.5　java.lang.Exception类100
7.6　从方法抛出异常101
7.7　用户自定义的异常102
7.8　异常处理总结103
7.9　小结104
习题104
第8章　数字和日期105
8.1　数字解析105
8.2　数字格式化106
8.3　用java.text.NumberFormat解析数字107
8.4　java.lang.Math类107
8.5　java.util.Date类108
8.6　java.util.Calendar类109
8.7　用DateFormat进行日期解析和格式化110
8.7.1　DateFormat110
8.7.2　SimpleDateFormat111
8.8　小结112
习题112[1]
......
前言
欢迎阅读本书。Java是一种很容易学会的成熟的编程语言，同时，它也汇集各种技术于一身，经常令初学者不知道从何入手。如果你也有同感，那么本书就很适合你，因为这是一本特意为初学者量身定制的教程。
作为面向初学者的教程，本书不是要教会你每一种Java技术（因为薄薄一本书是不可能囊括所有Java技术的，这也是大部分Java类书籍都只专注于某一种技术的原因）。应该说，本书涵盖了最重要的Java编程技术，使你能以此为基础进而学习其他技术。本书的内容依然丰富，只要你真正理解所有章节的内容，并且完成练习，你将完全能够胜任一名中级Java程序员的日常工作。
本书共三大主题，这些是一名专业级Java程序员必须熟练掌握的内容：
Java编程语言；
Java面向对象编程（OOP）；
Java核心类库。
要想把以上三大主题组织好一本高效的Java教材之所以困难，正是因为以下两方面的原因。一方面，Java是一种面向对象编程（OOP）的语言，如果你已经了解OOP的话，就会知道它的语法是比较容易学的。另一方面，OOP特性（如继承、多态以及数据封装），用现实的案例进行示范也很容易。问题在于，理解真实的Java程序需要具备Java核心类库的知识。
由于它们之间的相辅相成关系，这三大主题并没有划分成三个独立的部分，而是讨论某一主题的章节会与讨论另一主题的章节相互交织在一起。例如，在解释多态之前，我要先确保你了解某些Java类，之后才能讲解真实的案例。此外，如泛型这样的语言特性，如果你事先不理解某些类，是无法解释清楚的，因此我就会在讲完那些基础类之后再讨论泛型。
还有这样的情况：某一个主题可能会在两个甚至更多个地方出现。例如，for语句是一项基本的语言特性，它应该在较前面的章节中进行讨论。但是，for还可以用来迭代一组对象，这种特性则又只能在讲完“集合框架”之后再做讨论。因此，for最早在第3章中出现，之后在第11章中再度出现。
接下来，我要在此首先高度概述一下Java，粗略介绍一下面向对象编程（OOP）的概念，并简要地描述每一章的主要内容，以及讲述如何安装Java软件。
Java语言和技术
Java不仅是一种面向对象的编辑语言，它还是使软件开发变得更加快速并且获得更健壮、更安全的应用程序的一系列技术。多年来，Java之所以会成为首选的编程技术，是因为它具有如下优势。
平台独立性
易用性
加速应用程序开发的完整类库
安全性
可扩展性
广泛的行业支持
Sun Microsystems公司于1995年开发出Java，随后Java（尽管它从一开始就是一种通用的语言）成为编写Applet（在Web浏览器上运行的小程序，为静态的网站增添交互性）的著名语言。互联网的快速发展有很大一部分要归功于Java早期的成功。
然而，Applet并不是令Java魅力四射的唯一因素。Java最吸引人的另一个特性是它的平台独立性承诺，也就是“一次编写，到处运行”（Write Once, Run Anywhere）的口号。这意味着编写一个程序就可以在Windows、UNIX、Mac、Linux及其他操作系统上运行。这是任何其他编程语言都无法实现的。当时，C和C++是开发常规应用程序时最常用的两种语言。Java自诞生之日起，似乎就抢尽了它们的风头。
这就是Java 1.0。
1997年，Java 1.1发布了，它增加了一些更加重要的特性，例如，更好的事件模型、Java Beans以及国际化（internationalization，i18n）。
1998年12月，Java 1.2发布了。在它发布3天之后，版本号由1变成了2，它标志着于1999年开始掀起的一场以Java作为“下一代”技术的销售战役拉开了序幕。Java 2以4种风格出售：标准版（J2SE）、企业版（J2EE），移动版（J2ME），以及Java Card版本（从未在这个品牌名称中采用“2”）。
接下来于2000年发布了1.3版，也就是J2SE 1.3。两年之后发布1.4版，即J2SE 1.4。J2SE 1.5于2004年发布。但是Java 2 的1.5版随后改成了Java 5。
2006年11月13日，即Java 6正式发布前的一个月，Sun Microsystems公司宣布Java变成开源了。Java SE 6是Sun Microsystems公司诚邀外部开发者贡献代码和帮助修复bug后的第一个Java版本。其实，Sun公司过去也曾接受过非本公司员工的参与，如Doug Lea在多线程方面的付出，但这是Sun公司第一次发出公开的邀请。Sun公司承认他们的资源有限，在不久的将来，外界的参与者将会帮助他们画上完美的句号。
2007年5月，Sun公司把其Java源代码作为免费软件在OpenJDK社区发布。IBM、Oracle和Apple公司随后也都纷纷加入了OpenJDK。
2010年，Oracle公司收购了Sun公司。
Java 7（代号Dolphin）于2011年7月发布，这也是通过OpenJDK进行开源合作的成果。
是什么使Java平台能够独立
你一定听说过“平台独立”或者“跨平台”这类术语，它意味着程序可以在多种操作系统上运行。这也是使Java深得人心的一大原因。但是，到底是什么使Java得以实现平台独立呢？
在传统的编程中，源代码是要编译成可执行代码的。这种可执行代码只能在所设计的平台上运行。换句话说，为Windows而编写和编译的代码就只能在Windows上运行，在Linux中编写的代码就只能在Linux上运行，等等，如图I.1所示......[1]