欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java1.5 新特性

程序员文章站 2022-03-14 09:50:13
...

      在Java1.5 中增加了很多新的特性,首先我想介绍的新特性之一:泛型。

      我对泛型一词的理解是:将抽象的类型具体化(Object 的泛型化,使其特指某一个特性的对象)。Java 通过泛型使对集合指定存储类型,在集合对象使用的时候不再需要强制转型。并且在往集合中存放数据时得到了编译器的检查。Java 的泛型很像C++中的模板机制。但两者可能存在一定的区别。(具体我也不知道。:))。例子如下:

public class GenericTest<T>
{
    T field;


    public static void main(String[] args) {
        GenericTest<Integer> g = new GenericTest<Integer>();
        g.field = 10;
    }
}

       特性之二:For—Each循环。For—Each循环既可以用于数组,也可以用于Collection 容器例子如下:

public class ForEach
{
    public static void main(String[] args) {
        int[] arr = new int[] {
                    1, 2, 3,
                   };
        for(int i:arr) {
            System.out.println(i);
        }
        List<Integer> list = new ArrayList<Integer>();
        list.add( 1);
        list.add( 2);
        list.add( 3);
        for(int i:list) {
            System.out.println(i);
        }
    }
}

      特性之三是Java 可以自动的进行装包和拆包。也就是说Java 会根据具体情况自动的将基本类型转换成对象或将对象转换为基本类型。

      特性之四是枚举,这是一个全新的类型,定义起来也挺特殊的。它不用class关键字而是使用enum,通过测试可以看到enum 就是定义一个class 类型,但其比较特殊,你无法创建该类型的对象,该类型的所有对象都在定义enum 时同时进行了定义。它还默认提供了两个方法values 和vauleOf。例子如下:

public enum EnumsTest
{
    ENUM1,
    ENUM2,
    ENUM3;

   public static void main(String[] args) {
        for(EnumsTest e:EnumsTest.values()) {
            System.out.println(e);
        }
       System.out.println(EnumsTest.valueOf( "ENUM1"));
       System.out.println(EnumsTest.class);
   }
}

      特性之五是可变参数,可变参数用于方法的重载,使其更加的简单有效,但必须注意的是,可变参数必须是方法参数的最后一个参数,通过可变参数在Java 中通过反射调用方法更加的方便和直观。可变参数其实是一个数组作为方法参数。代码如下:

public class Varargs
{
    static void print(Object... objs) {
        for(Object obj:objs) {
            System.out.println(obj);
        }
    }

    public static void main(String[] args) {
        print();
        print(1);
        print(1, 1.0f);
        print(1, 1.0f, 21.0);
        print(1, 1.0f, 21.0, "s");
    }
}

      Java 1.5 的最后一个特性是静态导入。静态导入在真正的使用当中并不常用,因此只提供一个简单的例子供各位参考。例子如下:

import static java.lang.Math.*;

public class StaticImport
{
    public static void main(String[] args) {
        System.out.println(PI);
    }
}

在这里忽略了类对象,如果不是用静态导入要写成“System.out.println(Math.PI);”,而这本身却降低了代码的可读性。 

 

相关标签: 基础