java泛型的好处

 java 泛型是java SE 1.5的新特性,泛型的本质是参数化类型,也就是说所操做的数据类型被指定为一个参数。这种参数类型能够用在类、接口和方法的建立中,分别称为泛型类、泛型接口、泛型方法。 java

泛型的好处
程序员

java 语言中引入泛型是一个较大的功能加强。不只语言、类型系统和编译器有了较大的变化,以支持泛型,并且类库也进行了大翻修,因此许多重要的类,好比集合框架,都已经成为泛型化的了。安全

这带来了不少好处:

1,类型安全。 泛型的主要目标是提升 Java 程序的类型安全。经过知道使用泛型定义的变量的类型限制,编译器能够在一个高得多的程度上验证类型假设。没有泛型,这些假设就只存在于程序员的头脑中(或者若是幸运的话,还存在于代码注释中)。框架

 

2,消除强制类型转换。 泛型的一个附带好处是,消除源代码中的许多强制类型转换。这使得代码更加可读,而且减小了出错机会。性能

 

3,潜在的性能收益。 泛型为较大的优化带来可能。在泛型的初始实现中,编译器将强制类型转换(没有泛型的话,程序员会指定这些强制类型转换)插入生成的字节码中。可是更多类型信息可用于编译器这一事实,为将来版本的 JVM 的优化带来可能。因为泛型的实现方式,支持泛型(几乎)不须要 JVM 或类文件更改。全部工做都在编译器中完成,编译器生成相似于没有泛型(和强制类型转换)时所写的代码,只是更能确保类型安全而已。优化

    泛型在使用中还有一些规则和限制:
    一、泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。
    二、同一种泛型能够对应多个版本(由于参数类型是不肯定的),不一样版本的泛型类实例是不兼容的。
    三、泛型的类型参数能够有多个。
    四、泛型的参数类型可使用extends语句,例如<T extends superclass>。习惯上成为“有界类型”。
    五、泛型的参数类型还能够是通配符类型。例如Class<?> classType = Class.forName(Java.lang.String);
    泛 型还有接口、方法等等,内容不少,须要花费一番功夫才能理解掌握并熟练应用。在此给出我曾经了解泛型时候写出的两个例子(根据看的印象写的),实现一样的 功能,一个使用了泛型,一个没有使用,经过对比,能够很快学会泛型的应用,学会这个基本上学会了泛型70%的内容。spa

四、多了一种 抽象层次code

//    只能计算3+2
    public int add(){
        return 3+2;
    }
//能够计算任意两个int的和
    public int add(int x,int y){
        return x+y;
    }
//能够计算两个int的和,也能够计算其余任意两个类型的相加
    public <T> T add(T x,T y){

        return null;
    }

抽象实际上是根据一些共同特性来对事物进行分类,根据不一样的分类层次能够作不一样的事情。orm

抽象的好处见上面的代码,接口

相关文章
相关标签/搜索