jdk5.0中出现的新特性

时间:2022-08-11 15:25:59

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. 过度使用静态导入会一定程度上降低代码的可读性