JDK1.5新特性
1 静态导入
静态导入用于简化程序对静态类属性和方法的调用
语法:Import static 包名.类名.静态属性|静态方法|*
例如:
import static java.lang.System.out
import static java.lang.Math.*
2 自动装箱/拆箱
自动装箱:把一个基本数据类型直接赋给对应的包装类。
比如:Integer num = 12; //相当于Integer num = new Integer(12);
自动拆箱:把一个对应的包装类直接赋给基本数据类型。
Integer num = 12;
System.out.println(num + 12); //num是一个对象的引用,将自动拆箱成基本数据类型和12进行加法操作。
基本数据类型的对象缓存:
Integer num1 = 12;
Integer num2 = 12;
System.out.println(num1==num2);
//true java认为-128~127的数字经常出现,如果一个数字就用一个对象会非常占用内存,所以把这些数字都封装到了缓冲池中
Integer num3 = 129;
Integer num4 = 129;
System.out.println(num3==num4);
//false 129超出了缓冲池的范围
典型应用:
List<Integer> list = new ArrayList<Integer>();
list.add(1);
int num = list.get(0);
3 增强For循环
引入增强for循环的原因:
在JKD5以前的版本中,遍历数组或集合中的元素,需先获得数组的长度或集合的迭代器,比较麻烦。
JKD5中定义了一种新的语法——增强For循环,以简化此类操作。
语法格式:
for(变量类型 变量 :需迭代的数组或集合){....}
注意事项:
1 迭代变量必须在()中定义。
2 增强for循环只适合取数据,并不会改变数据值。
3 增强For循环只能用在数组或实现Iterable接口的集合类上。
4 可变参数(VariableParameter)
从JDK5开始,java允许为方法定义长度可变的参数。
语法格式:
public void foo(int... args){....}
注意事项:
1 调用可变参数的方法时,编译器将自动隐式创建一个数组保存传递给方法的可变参数,因此,程序员可以在方法体中以数组的形式访问可变参数
2 可变参数只能处于参数列表的最后,所以一个方法最多只能有一个长度可变的参数。
注意:传入基本数据类型数组的问题。