`

伪泛型

    博客分类:
  • JAVA
 
阅读更多
17:52:39
java里得泛型  因为出来得时候比较晚 所以 没有做到jvm的运行时类型系统里
17:52:58
所以  泛型的协变和逆变基本上等于0支持
  17:53:17
so 说它是伪泛型 从这里来的
17:53:31
举个例子
17:53:45
Object[] so = new String[]
广州-文 17:53:47
有点了解easy哥说的了
北京-不容易  17:53:51
这是可以的
福州-Devon  17:54:04
这种情况就是范型协变吧?
上海-三井寿  17:54:17
List<Object
深圳-青年 17:54:22
听easy讲完再提问
北京-不容易 17:54:23
但是 List<Object> ls = new ArrayList<String>()  是不可以的
北京-不容易  17:54:37
所以 泛型的基本特性之一 失去了
分享到:
评论

相关推荐

    Java泛型不是真正的泛型

    详细的介绍了Java是伪泛型的原因,介绍了类型擦除的内容等。

    JDK1.5的泛型实现

    4. **类型擦除**:Java的泛型是伪泛型,因为Java编译器在编译期间执行了类型擦除。这意味着在运行时,所有的泛型信息都会被删除,所有的类型参数都会被替换为其边界类型(通常是 `Object`)。因此,泛型主要提供编译...

    Java 基础(4-8) - 泛型机制详解.pdf

    然而,由于Java的类型系统是静态的,为了保持向后兼容性,Java采用了“伪泛型”策略,即在编译阶段进行类型擦除,将泛型信息替换为具体的类型。 **泛型的基本使用** 1. **泛型类**:泛型类允许在类定义中使用类型...

    565.563.JAVA基础教程_泛型与File-为什么要使用泛型(565).rar

    2. **类型擦除:** Java的泛型是伪泛型,因为Java虚拟机(JVM)并不直接支持泛型。在编译后,所有的类型参数都会被替换为它们的边界类型或者是Object,这个过程称为类型擦除。 3. **边界约束:** 我们可以限制类型...

    Java核心知识1:泛型机制详解.pdf

    为了兼容之前的版本,Java泛型的实现采取了“伪泛型”的策略,即Java在语法上支持泛型,但是在编译阶段会进行所谓的“类型擦除”(Type Erasure),将所有的泛型表示(尖括号中的内容)都替换为具体的类型(其对应的...

    推荐优质Java课程 疯狂Java语言编程 Java入门到进阶教程 09.泛型(共15页).ppt

    这是为了保持向后兼容性,因为Java的泛型是伪泛型,它使用类型擦除来实现。 6. **泛型与数组的区别** 泛型和数组在处理类型上有所不同。尽管泛型可以限制集合中的元素类型,但数组的类型是固定的。例如,`Foo[]`是...

    java面试题20道和答案.docx

    Java 的泛型是伪泛型,因为 Java 在编译期间,所有的泛型信息都会被擦掉,这也就是通常所说类型擦除。 == 和 equals 的区别 == 的作用效果是不同的。在基本类型中,== 比较的是值是否相同。在引用类型中,== 比较...

    JavaSE基础入门视频教程33天之(18) part2

    `day18_15(集合框架)Java中的伪泛型.avi`可能涉及了Java历史上的一个特殊现象,由于历史兼容性原因,Java泛型是类型擦除的,因此有时会看到所谓的“伪泛型”,这通常是指在代码中使用了未指定类型的集合,但仍然保持...

    Java 泛型总结(一):基本用法与类型擦除

    泛型可以使代码更加简洁、安全,然而 Java 中的泛型使用了类型擦除机制,只是伪泛型。通过使用泛型,我们可以编写更加简洁、安全的代码。 在下一篇文章中,我们将继续介绍 Java 泛型的其他用法和问题,敬请关注。

    Java泛型&lt;T&gt; T与T的使用方法详解

    在使用泛型时,需要注意的是,Java的泛型是伪泛型,这是因为Java在编译期间,所有的泛型信息都会被擦除。在编译时,编译器会检查类型,然后进行类型擦除,即所有类型参数都用他们的限定类型替换,包括类、变量和方法...

    浅谈java泛型的作用及其基本概念

    这种设计使得Java的泛型成为"伪泛型",因为它们在运行时不保留类型信息,但在编译时会进行类型检查,以确保类型安全。 Java引入泛型的主要目标是解决两个问题: 1. **增强类型安全性**:通过在编译时期检查类型,...

    面经-易贝一面1

    Java的泛型是伪泛型,因为编译后泛型信息会被擦除,运行时实际处理的是Object类型,但编译时会进行类型检查。 综上所述,这场面试涵盖了IT领域的多个基础且重要的知识点,虽然面试者认为面试较为简单,但这些都是...

    Java中的泛型详解

    由于Java的泛型是类型安全的,但并不在运行时存在,因此被称为“伪泛型”。在JVM看来,所有的泛型类都等同于其非泛型版本,即类型参数在编译后被替换为它们的实际类型或其边界。因此,静态成员(包括方法、变量和...

    KMP查找算法的泛型实现

    下面是KMP算法的C++模板实现的伪代码: ```cpp template int KMP(T mainStr, T pattern, int lps[]) { // 主串和模式串的长度 int mainLen = mainStr.length(), patternLen = pattern.length(); // 指针,...

    java8集合源码分析-Outline:大纲

    伪泛型(, , ) 自动装箱(,) Try-with-resources() 序列化 反序列化(, , , ) interface 和 abstract class 区别 变长参数( ) 枚举详解(, , , , ) Null详解() Java 8 默认方法() 集合类(底层实现原理,实现类的优缺点) ...

    解析Java 泛型什么情况下不能使用

    解析Java泛型什么情况下不能使用 Java泛型是一种非常有用的机制,可以帮助我们编写更加可靠、可读性强的代码。然而,在某些情况下,Java泛型是...Java泛型是一种伪类型,不是真正的类型,因此无法进行instanceof判断。

    用C语言的泛型实现交换两个变量值

    这种方法的伪代码如下: ```c T a = ...; T b = ...; T tmp = a; a = b; a = tmp; ``` 这种方法简单明了,但要求编译器按照特定顺序执行语句,以保证交换的正确性。 另一种策略,p99_swap2,试图通过创建两个临时...

    Generics with Delphi 2009 Win32

    ##### C、伪常规 Default 在某些情况下,可能需要定义一个默认构造函数,以在没有指定初始值时提供一个默认值: ```delphi constructor TTreeNode&lt;T&gt;.Default; begin inherited Create(default(T)); end; ``` ##...

    C#学习的资源,简单的保镖,伪静态

    C#支持多种编程范式,包括面向对象、面向组件和泛型编程。它具有丰富的类库,如System、IO和Collections等,方便开发者进行数据处理、文件操作和网络通信。 “简单的保镖”可能指的是一个C#编写的简单安全或防护...

    C++标准程序库1

    为了这个阶段的学习,书中有关键的STL源码或伪代码,揭示了关键数据结构和编程技术,有助于提高对STL运用的深入理解。 3. **第三境界**:成为泛型技术专家,能够创建与STL兼容的自定义组件。这需要深入理解STL的...

Global site tag (gtag.js) - Google Analytics