鄢爱兰,鹿江春等译,全面介绍了Java语言,Java标准库和Java开发环境。北京清华大学出版社出版。
内容提要:
本书是世界级程序设计大师Herbert Schildt的作品,全面介绍了Java语言,Java标准库和Java开发环境
本书是从Java基础入手,内容涵盖了J2EE5中的新增特性,如泛型,自动装箱,枚举,元数据,并发类库等。本书分四个部分,第一部分介绍Java语言,第二部分讨论标准Java库,第三部分讨论Java开发环境,第四部分是Java开发实例,各部分前后衔接,联系紧密。
本书是Java语言及其核心库的完全参考指南,无论是Java编程新手还是有丰富经验的专业人员,都可从本书受益。
前言
本书是Java语言和核心库的完全指南,其中包括J2SE新增的大量特性。J2SE(Java2 platform Standard Edition)是Sun公司的Java开发系统,定义了Java语言的形式和特性。5代表版本,是最近发行的版本号。
J2EE5新增了许多特性。有些特性(比如泛型、自动装箱和枚举)是Java程序员多年来一直梦寐以求的,有些特性(比如元数据)是超前创新,指明了未来的开发方向。从这两方面来讲,J2SE5新增的特性都在改变着Java编码的方式。过去程序员所依赖的许多技术现在已经过时,取而代之的是更好更强大的方法。
在开发过程中,J2SE 5的代号是Tiger。这个名字是经过精心选择的,它不仅宣告10年前发行Java原始版本现在有了一个新版本,而且还暗示着将对编程领域产生巨大而深刻的影响。正如原来的Java版本使Internet编程方式发生了革命性变化一样,J2SE 5则将使我们思考和设计程序的方式发生翻天覆地的变化。
本书涵盖了“新Java”的所有方面。
一本面向所有程序员的书
本书面向所有程序员。初学者将从本书精心安排的内容和大量实例中受益匪浅,而专业人员则能了解到Java的高级特性、类库,以及许多J2SE5的新增特性。对这两类读者,本书都提供了永久的资源和方便的参考。
本书内容
本书涵盖了Java编程语言的各个方面。
Part 1 Java基础
第一章 Java起源
1.1 Java的来源
Java是由C继承而来的,而Java的很多特性都受C++的影响。
1.1.1 C的诞生
C语言的诞生是人们所追求结构化,高效率,高级语言的结果。在C语言之前人们不得不在各种有欠缺的语言中进行选择:Basic虽然易学,但功能不够强大,并且谈不上什么结构化。汇编语言虽然高效率,但学习起来并非易事,而且调试很不方便。Pascal虽然是结构化语言,但效率不高。
C语言诞生的另外一个原因是因为计算机硬件资源多了,程序员可以任意使用计算机资源。
Dennis Ritchie在Unix系统下的DEC PDP-11上发明并首次实现了C语言。1989年美国国家标准化组织制定了C语言的标准,C语言被正式标准化。
1.1.2 C++更上一层楼
20世纪70年代末80年代初,C语言成为主流计算机编程语言。
最早编程是通过面板触发器通过人工打孔的形式输入,随着程序的不断复杂化,人们发明了汇编程序。随着程序的不断变大,高级语言产生了,它给程序员带来了更多的工具。
第一个被广泛接受的高级语言是FORTRAN,FORTRAN不能开发出让人易于理解条理清楚的程序。20世纪60年代提出结构化编程,C语言正是这种结构化思想的结果。
然而就算用结构化编程,但项目达到一定规模的时候,结构化编程也没办法满足需求了。
1979年,Bjarne Stroustrup发明了C++语言,C++在面向对象上扩充了C语言。最初Bjarne Stroustrup把它叫作“带类的C”,1983年才改名为C++。
20世纪80末90年代初,C++成为了主流计算机编程语言。甚至被认为是完美的编程语言。但随后的Internet和www的革命促成了编程界的另一场革命。
1.2 Java的诞生
Java是由James Gosling、Patrick Naughton、Chris Warch、Ed Frank和Mike Sheridan于1991年在Sun公司设计出来的。开发第一个版本用了18个月,开始命名为Oak,
1.3 J2SE 5的革命
J2SE是一次里程碑的发布。这次发布增加了很多主要的新特性
1. 泛型
2. 元数据
3. 自动装箱自动折箱
4. 枚举
5. 变长参数
6. 增强性for …. each 循环
7. 静态导入
8. 格式化IO
9. 并行工具
10. API升级
上次这些特性不是枝节的改动和递增型的改进,第一项都代表Java语言的重大引进。
第二章
2.1 面向对象的三大原则
1. 封装
2. 继承
2.2 第一个简单的Java程序
2.2.1 键入程序
2.2.2 编译程序
键入javac Java源文件名
2.6.5 Java分隔符
在Java中一些字符被用做分隔符(Separator),最常用的是“;”
2.6.7 Java类库
要成为一个优秀的程序员就是学会使用Java标准类
第三章 数据类型、变量和数组
3.1 Java是一种强类型语言
3.2 基本类型
Java定义了8种基本数据类型byte,short,int,long,float,double,boolean,char。尽管Java在其他方便面向对象的,但这些基本类型不是。
3.3.1 字节型
最小的整型是字节型(byte)。这是一个有符号的8位类型,其范围是 -128~127。byte的变量在使用来自网络或文件的数据流时特别有用
3.3.2 短整型
短整型(Short)是一个有符号的16位类型,范围是-32768-32767,它可能是Java中使用得最少的类型了,因为它被定义为高类型优先(称为big-endian格式),此类型最适合16位机,然而这种计算机现在越来越少。
3.3.3 int
最常用的类型是int,它是有符号的32位类型,其范围是-2147483648~2147483647。Int类型是变化最多,最有效的类型
3.3.4 长整型
长整型是有符号的64位类型,用于存储int类型不足存储的数据类型。
3.5 字符型
Java用来存储字符的数据类型是char。
3.6 布尔型
3.7 深入分析字面量
3.7.3 布尔型字面量
布尔型字面量很简单,只有两个值true和false。
3.7.4 字符型字面量
3.7.5 字符串符字面量
Java的字符串字面量通过把一串字符放在一对双引号之间来指定。字符串字面量的例子如下:
“Hello world”
3.8 变量
3.8.1 声明一个变量
变量声明的基本形式
type identifier [=value][,identifier=[value]…]
第四章 运算符
4.1 算术运算符
下表列出各种自述运算符
运算符 | 结果 |
+ | 加 |
- | 减 |
* | 乘 |
/ | 除 |
% | 取模 |
++ | 递增运算 |
+= | 加法赋值 |
-= | 减法赋值 |
*= | 乘法赋值 |
/= | 除法赋值 |
%= | 取模赋值 |
-- | 递减运算 |
算术运算符的对象必须是数字。
第五章 程序控制语句
编程语言是通过控制(Control)语句来产生执行流的
5.1 Java选择语句
Java支持两种选择语句:if和switch。
5.3.2 运用增加的for-each循环
// Search an array using for-each style for.
class Search{
public static void main(String args[]){
int nums[] = {6,8,3,7,5,6,1,4};
int val = 5;
boolean found = false;
// use for-each style for to search nums for val
for(int x : nums){
found = true;
break;
}
if(found)
System.out.println("Value found!");
}
}
5.4 跳转语句
Java支持三种跳转语句:break、continue和return
5.4.1 使用break
第六章 介绍类
类是Java核心内容。它是一种逻辑构造,整个Java语言就在此基础上建立的,因为它定义了对象的形式和本质。
6.1 类的基础
6.1.1 类的一般形式
6.1.2 简单的类
6.2 声明对象
第七章 方法与类详述
7.6 访问控制
7.7 关键词 static
7.8 关键词 final
7.9 数组
7.10 嵌套类和内部类
7.11 String类
7.12.1 变长参数
J2SE 增加了一个新特性,简化了创建数目可变参数的方法。该特性被称为varargs,即变长参数(variable-length arguments)的简称。
下面是使用变长参数编写的vaTest():
Static void vaTest(int …v);
第八章 继承
第九章 包和接口
本章讨论Java两个最具革命性的特征:包和接口。包是(Packages)类的接口,用于把类名空间分离开。
包和接口是Java程序的两个基本组件。
9.1 包
9.1.1 定义一个包
下面是package语句的一般形式
package pkg;
第十章 异常处理
第十一章 多线程编程
第十二章 枚举、自动装箱和元数据(注释)
本章将分析J2SE
第十三章 输入输出、Applet和其他主题。
第十四章 泛型
Part 2 Java库
附件是这本书的相关源代码,陆续会补齐