1.泛型
1.4及之前版本中java的容器类装的是object对象。
1.5之后的版本支持泛型定义容器,实例化时就决定容器内所装对象的类型。
例:
1.4下
ArrayList list=new ArrayList();
list.add(new Integer(1));
list.add(new Integer(2));
int i=((Integer)(list.get(0))).parseInt();
1.5下
ArrayList<Integer>list=new ArrayList<Integer>();
list.add(new Integer(1));
list.add(new Integer(2));
int i=list.get(0).parseInt();
意义:强制装换可能导致运行时出错,但编译时无法发现问题,运行时错误变为编译时错误,这是进步。
2.自动装箱/拆箱
原始类型与对应的包装类不用显式转换。
例:
Integer t=new Integer(1);
1.4下
int i=t.parseInt();
1.5下
int i=t;
意义:简化代码。
3.for循环增强
简化for循环实现。
例:
int a[]={........};//初始化一维数组
1.4下
for(int i=0;i<a.length;i++)
{
.......
}
1.5下
for(int i:a)
{
......
}
意义:简化代码,避免一些数组越界的错误。
4.静态导入
使用static import导入静态成员,包括包、类、接口、方法。
例:
1.4下
import java.math;
Math.sin();
1.5下
static import java.math.sin;
sin();
意义:可直接使用静态成员,例子的效果类似于类中存在此方法。
5.可变长度参数
允许方法中可变长度参数的定义
例:
1.4下
public String test(int a[]) {
for (int i=0;i<a.length;i++) {
......
}
}
调用时
int a[3] = {1,2,3};
test(a);
1.5下
public String test(int... a) {
for (int i : a) {
......
}
}
调用时
test(1,2,3...); //任意参数数量
意义:在调用时,你不再需要传入一个包装好的数组,你只需要简单的写一连串参数,以逗号隔开即可,就如同这个方法正好有一个重载的版本是接受那么多个参数一样。
java5.0的新特性还包括安全类型枚举和注解等,后续再进行补充