`

JDK1.5中泛型的实现原理

    博客分类:
  • jdk
阅读更多
在JDK1.5中加入了泛型,能帮助我们简化代码,能解决不少问题,那JDK1.5中是如何实现的呢 ?
JDK1.5中泛型的实现是擦拭法实现的,不同与c++中的泛型。说擦拭法可能有点难理解,所以从下边的角度理解一下:
我们写一个程序 1 package com.jdk15;
 
  import java.util.ArrayList;
 
  public class Generic {
      public static void main(String[] args){
          ArrayList<String> list = new ArrayList<String>();
          list.add("a");
          list.add("b");
         String str = list.get(0);
     }
}编译成.class的文件
然后用Jad反编译后的结果:
  package com.jdk15;

  import java.util.ArrayList;
 
public class Generic
{

     public Generic()
     {
     }

     public static void main(String args[])
     {
        ArrayList list = new ArrayList();
         list.add("a");
         list.add("b");
         String str = (String)list.get(0);
      }
}
看到这个是否明白了吗 ?
在JDK1.5中,只是在编译期作了下手脚,就是在你编译之前,自动补充了转型,然后编译实现的。
所以JDK1.5中的泛型只简化了代码的编写,并没有提高性能的原因。因为转型并没有去掉。
分享到:
评论
1 楼 buru 2011-07-03  
这根本证明不了,是你反编译器有问题

相关推荐

    jdk1.5的新特性泛型的实例代码

    Java开发工具包(JDK)1.5引入了一项重大改进,那就是泛型(Generics)。泛型是Java编程语言中的一个关键特性,它允许在编译时检查类型安全,并且所有的强制转换都是自动和隐式的,提高了代码的重用率。通过泛型,...

    JDK1.5的源代码

    通过学习JDK 1.5的源代码,开发者可以深入了解这些特性的实现原理,提升编程技巧,更好地利用Java平台提供的功能。将src包导入到IDE中,逐行阅读和分析源代码,是学习和理解这些概念的绝佳途径。同时,也可以通过...

    JDK1.5源代码,有原文注释

    JDK 1.5引入了泛型,这是一种强大的类型安全机制,允许在编译时检查集合中的元素类型。泛型允许在类、接口和方法中声明类型参数,增强了代码的可读性和复用性,减少了类型转换错误。 2. **自动装箱与拆箱...

    jdk1.5学习总结

    下面,我们将深入探讨JDK1.5中的泛型概念,包括其原理、用法以及一些实用的编程技巧。 #### 泛型的基本概念 泛型是JDK1.5引入的一种新机制,它允许程序员在定义类、接口和方法时使用类型参数,从而创建出能够操作...

    jdk1.5 and tomcat5.5

    标题"jdk1.5 and tomcat5.5"指的是Java Development Kit (JDK) 1.5版本与Apache Tomcat 5.5版本的组合。这两个组件是开发和运行Java应用程序的关键工具,特别是对于Web应用程序。 描述中提到的"jdk-1_5_0_22-...

    jdk1.5 src.zip

    以上内容只是JDK1.5源码中的冰山一角,实际的源码包含了大量关于Java虚拟机(JVM)、类加载机制、垃圾回收算法等深奥的内容,对于理解Java工作原理具有极大的价值。通过阅读和研究这些源码,开发者可以提升对Java...

    json 2.2.3 jdk 1.5 && jdk1.3 lib && src && doc文档 官方下载 天涯浪子

    JDK 1.5(也称为Java 5.0)引入了许多重要的新特性,如泛型、枚举、可变参数、注解等,而JDK 1.3是早期的版本,虽然相对较旧,但仍然有项目可能依赖这些版本。 "lib"通常指的是库文件,这里指JSON 2.2.3针对JDK 1.5...

    JAVA帮助文档jdk1.5

    1. **泛型(Generics)**:JDK 1.5首次引入了泛型,使得在编写代码时可以指定容器(如List、Set等)存储的数据类型,从而提高了代码的类型安全性和可读性,减少了运行时类型转换的错误。 2. **自动装箱与拆箱**:...

    jdk1.5中的范型

    ### JDK 1.5 中的范型 #### 引言 自 JDK 1.5 开始,Java 语言正式引入了一项重要的特性——泛型(Generics),这使得 Java 成为了一个更为强大且灵活的语言。泛型允许开发人员编写出类型安全的通用类或方法,从而...

    jdk1.5/1.6合集

    Java开发工具合集,主要包含了JDK 1.5和JDK 1.6两个版本,这是Java编程语言历史上非常重要的两个里程碑。JDK(Java Development Kit)是Oracle公司提供的用于开发和运行Java应用程序的核心工具集,对于Java开发者来...

    scjp认证指南JDK1.6,jdk1.5

    11. **泛型**:泛型引入于JDK1.5,用于提高代码的类型安全性和重用性,理解泛型类、泛型方法和通配符的使用。 12. **枚举**:枚举是JDK1.5引入的新特性,用于定义一组固定的值,可以替代传统的常量类。 13. **异常...

    jdk开发手册 1.6版本和1.5版本 中文

    而在1.5版本的手册中,理解泛型的工作原理和如何有效利用枚举来替换常量类是重点。 总的来说,这份《JDK开发手册》中文版1.6和1.5合集,是每一个Java开发者必备的学习资料。通过深入研究,开发者可以更好地理解和...

    RMI网络编程开发之二 如何搭建基于JDK1.5的分布式JAVA RMI 程序

    在JDK 1.5中,RMI的使用方式与早期版本并无太大差异,但有一些改进和优化,比如对泛型的支持、异常处理的改进等。具体到“DataServer”这个文件,很可能是一个实现了远程接口的服务端程序。这个服务端会创建远程对象...

    JDK转换器(1.5-->1.4)

    这在JDK 1.4中是不支持的,因此1.5编译的类如果使用了泛型,在1.4环境中运行可能会导致错误。 2. **枚举(Enums)**:JDK 1.5引入了枚举类型,这是一种预定义常量的类。在1.4中,枚举通常通过常量静态变量实现,...

    jdk1.8中文.zip

    2. **泛型**:自JDK1.5引入,泛型提高了代码的类型安全性和重用性。在JDK1.8中,泛型的应用更加广泛,包括对原始类型的通配符支持。 3. ** Lambda表达式**:这是JDK1.8的一个重大特性,它简化了函数式编程,使得...

    JDK源码(sun包)

    虽然在JDK 9及以后的版本中,sun包被标记为非公开和不推荐使用的,但在早期版本如JDK 1.5中,它对开发者具有很高的参考价值。 1. **JDK 1.5 版本特点** JDK 1.5,也被称为Java SE 5.0,引入了许多重要的语言特性,...

    泛型示例、原理的资料

    泛型是Java编程语言中的一个重要特性,自JDK 1.5版本引入以来,它极大地提高了代码的类型安全性和重用性。泛型允许在类、接口和方法中定义参数化类型,使得开发者可以在编译时检查类型,避免了运行时的类型转换,并...

    JAVA 经典文档汇总

    7. **JDK1.5的泛型实现 .rar**:泛型是JDK 1.5引入的新特性,用于增强类型安全并减少类型转换的麻烦。这份文档可能详细解释了泛型的原理、使用方法和最佳实践。 8. **J2EE开发全程实录 .rar**:通过一个或多个实际...

    java泛型深入.pdf

    泛型在JDK 1.5版本中引入。泛型避免了类型转换(Casting)的需要,比如以下示例代码: ```java List&lt;String&gt; list2 = new ArrayList(); list2.add("value"); String str2 = list2.get(0); // 这里不需要进行类型...

Global site tag (gtag.js) - Google Analytics