jdk5.0中出现的新特性
jdk5.0中出现的新特性
• 泛型(Generics)
• 增强的“for”循环(Enhanced For loop)
• 自动装箱/自动拆箱(Autoboxing/unboxing)
• 类型安全的枚举(Type safe enums)
• 静态导入(Static import)
• 可变参数(Var args)
1. 所谓泛型:就是变量类型的参数化。通过引入泛型,我们将获得编译时类型的安全和运行时更小地抛出ClassCastExceptions的可能。
2. 增强的for循环,For-Each循环的加入简化了集合的遍历,其语法如下:
for(type element : array) {
....
}
3. 当遍历集合或数组时,如果需要访问集合或数组的下标,那么最好使用旧式的方式来实现循环或遍历,而不要使用增强的for循环,因为它丢失了下标信息。
4. 自动装箱:基本类型自动转为包装类.(int >> Integer)
自动拆箱:包装类自动转为基本类型.(Integer >> int)
5. Integer 类有一个缓存,它会缓存介于-128~127 之间的整数。所以:Integer a =3 ;Integer b=3 中a==b为true。但如果使用new生成,则则结果为false。
6. 当您使用“enum”定义 枚举类型时,实质上您定义出來的类型继承自java.lang.Enum 类型,而每个枚举的成员其实就是你定义的枚举类型的一个实例(Instance),
他们都被预设为 final,所以你无法改变他们,他们也是static成员,所以您可以通过类型名称直接使用他们,当然最重要的,它们都是公开的(public)
7. 枚举的使用场景:类型确定。与常量相比,枚举显得更规范,限制了方法中传入的参数值。
8. 可变参数:可变参数本质上就是一个数组,对于某个声明了可变参数的方法来说,我们既可以传递离散的值,也可以传递数组对象。但如果将方法中的参数定义为数组,
那么只能传递数组对象而不能传递离散的值。
9. 可变参数必须要作为方法参数的最后一个参数,即一个方法不可能具有两个或两个以上的可变参数。
10. 导入Common类中的静态成员变量AGE以及静态方法output:
1). import static com.shengsiyuan.common.Common.Age; // 导入静态成员变量
2). import static com.shengsiyuan.common.Common.output; // 导入静态方法
注意:使用import static时,要一直导入到类中的静态成员变量或静态方法。
11. 过度使用静态导入会一定程度上降低代码的可读性