Java 5的新特性
1、泛型
2、增强的For循环
3、自动置入、取出(Autoboxing/unboxking)
4、类型安全的枚举
5、静态导入
6、可变参数
7、新的并发包 (新)
java.util.concurrent
java.util.concurrent.atomic
java.util.concurrent.locks
简单介绍如下:
1、泛型
可以声明一个集合将要接收/返回的对象类型,从而获得编译时的类型安全,更小的可能抛出ClassCastException
2、增强的For循环
for (type element : array){
System.out.println(element);
}
3、自动置入、取出(Autoboxing/unboxking)
4、类型安全的枚举
jdk1.5引入一个新关键字enum
Public enum Color{
Red,
White,
Blue
}
//然后可以这样使用
Color myColor = Color.Red;
注:
1、J2SE5.0中的枚举中,所有项都自动默认为static(很显然这是必要的)
2、对于每一个枚举类,都可以调用公用的方法,如values()-返回一个包含了所有枚举项的数组
3、对于每个枚举项,也能够调用基本的对象方法,如toString()
4、从某种意义上讲,enum关键字其实就是代表了一种新的类型的class,因为从本质上看,它就是一个类
5、可以用于switch语句
另外,在java.util包中新增了两个类用于更方便的处理枚举类型,这两个类分别是EnumSet和EnumMap。
5、静态导入
import xxxx 和 import static xxxx的区别:
前者一般导入的是类文件如import java.util.Scanner;
后者一般是导入静态的方法,import static java.lang.System.out;
import static java.lang.System.out;//导入java.lang包下的System类的静态方法out;
public class HelloWorld{
public static void main(String[] args){
out.print("Hello World!");//既是在这里不用再写成System.out.println("Hello World!")了,因为已经导入了这个静态方法out。
}
}
6、可变参数(variable arguments)
这一语言特征给软件开发人员在编写方法重载时提供了方便和灵活性。
但可变参数的应用并不像想象的那么简单,使用时有其特殊要求和局限性。
例如:
如果方法存在多个参数,可变参数必须在最后。
可变参数可以用在构造器中,子类可以覆盖这个构造器,但是不能调用超类的这个构造器。
//可变参数的例子
void printInvitation(String...names) {
for (String name : names) {
makeCard(name); //调用方法按照姓名打印邀请卡
System.out.println("Recording info: invitation card has been printed for " + name);
}
}
参考文档:http://wenku.baidu.com/view/9ab59c0490c69ec3d5bb750c.html