首页 > 试题广场 >

请你说说泛型、泛型擦除

[问答题]
请你说说泛型、泛型擦除
Java是伪泛型,我们在代码中写好的泛型,在编译时还会去掉,这就是泛型擦除
发表于 2022-04-30 18:00:44 回复(0)
1.泛型:Java在jdk1.5引入了泛型,在没有泛型之前,每次从集合中读取的对象都必须进行类型转换,如果在插入对象时,类型出错,那么在运行时转换处理的阶段就出错;在提出泛型之后就可以明确的指定集合接受哪些对象类型,编译器就能知晓并且自动为插入的代码进行泛化,在编译阶段告知是否插入类型错误的对象,程序会变得更加安全清晰。 2.泛型擦除:Java泛型是伪泛型,因为Java代码在编译阶段,所有的泛型信息会被擦除,Java的泛型基本上都是在编辑器这个层次上实现的,在生成的字节码文件中是不包含泛型信息的,使用泛型的时候加上的类型,在编译阶段会被擦除掉,这个过程称为泛型擦除。
发表于 2022-06-26 10:39:53 回复(1)
泛型的本质:参数化类型,即给类型指定一个参数。泛型:泛型接口,泛型类,泛型方法。泛型的好处:1.可以在编译时检查类型安全。2.所有的强制转换都是自动和隐式的,可以提高代码的重用率。泛型擦除:编译器在编译期间将我们写好的泛型进行擦除,并相应的做出一些类型转换。
发表于 2022-06-16 16:26:48 回复(0)
Java在1.5之后引入了泛型,防止在编译时产生类型转换错误,编译时就能及时发现,而不是运行。程序在编译时会将泛型去掉,这就是泛型擦除。
发表于 2022-08-13 22:02:33 回复(0)
arrayList<Integer>泛型不可以向上转化为arrayList<number>,因为arrayList<number>接收arrayList<float>,但arrayList< Integer>不可以接收arrayList< float>,不能转回来
编辑于 2022-06-21 18:24:43 回复(0)
1.泛型:Java在jdk1.5引入了泛型,在没有泛型之前,每次从集合中读取的对象都必须进行类型转换,如果在插入对象时,类型出错,那么在运行时转换处理的阶段就出错;在提出泛型之后就可以明确的指定集合接受哪些对象类型,编译器就能知晓并且自动为插入的代码进行泛化,在编译阶段告知是否插入类型错误的对象,程序会变得更加安全清晰。 2.泛型擦除:Java泛型是伪泛型,因为Java代码在编译阶段,所有的泛型信息会被擦除,Java的泛型基本上都是在编辑器这个层次上实现的,在生成的字节码文件中是不包含泛型信息的,使用泛型的时候加上的类型,在编译阶段会被擦除掉,这个过程称为泛型擦除。
发表于 2022-11-15 12:56:38 回复(0)
1.泛型的本质:参数化类型,即给类型指定一个参数。
泛型的好处:
1.可以在编译时检查类型安全。
2.所有的强制转换都是自动和隐式的,可以提高代码的重用率。
泛型擦除:Java泛型是伪泛型,因为Java代码在编译阶段,所有的泛型信息会被擦除,Java的泛型基本上都是在编辑器这个层次上实现的,在生成的字节码文件中是不包含泛型信息的,使用泛型的时候加上的类型,在编译阶段会被擦除掉,这个过程称为泛型擦除。
发表于 2023-02-08 11:59:42 回复(0)
1)泛型:Java在jdk5引入了泛型,在没有泛型之前,每次从集合中读取的对象都必须进行类型转换,如果在插入对象时,类型出错,那么在运行时转换处理的阶段就会报错。在提出泛型之后就可以明确的指定集合接受哪些对象类型,编译器就能知晓并且自动为插入的代码进行泛化,在编译阶段告知是否插入类型错误的对象,程序会变得更加安全清晰。 2)泛型擦除:Java泛型是伪泛型,因为Java代码在编译阶段,所有的泛型信息会被擦除,Java的泛型基本上都是在编辑器这个层次上实现的,在生成的字节码文件中是不包含泛型信息的,使用泛型的时候加上的类型,在编译阶段会被擦除掉,这个过程称为泛型擦除。
发表于 2022-07-19 20:23:57 回复(0)
java的泛型是伪泛型,这是因为java在编译期间,所有的泛型类型都会被擦掉,这就是泛型擦除
发表于 2022-06-27 08:47:23 回复(0)
答: 泛型是Java的一个重要特性,允许我们在定义类、接口和方法时使用类型参数,从而使得这些代码可以在不同的数据类型上进行通用操作,泛型的主要作用是提高代码的重用性、类型安全性和可读性。 泛型擦除是指Java编译泛型代码时,会将泛型类进行信息擦除,并在运行时使用原始类型代替。避免运行时额外的类型检查和类型转换。
发表于 2024-03-27 20:58:56 回复(0)
泛型是Java中的一个重要特性,它允许我们编写可以处理多种类型的代码,而不需要为每种类型都编写一个单独的类。泛型的核心思想是参数化类型,即将类型作为参数传递给类或方法。这样可以在编译时检查类型的正确性,从而避免在运行时出现类型转换异常泛型擦除是Java泛型实现中的一种技术,它的核心思想是在编译时将泛型类型擦除为原始类型,从而使得泛型类型在运行时不再存在。这样做的好处是可以在不影响现有代码的情况下引入泛型特性,但也带来了一些限制,比如无法在运行时获取泛型类型的信息在Java中,泛型擦除的具体实现方式是通过类型擦除来实现的。具体来说,编译器会将泛型类型中的类型参数替换为它们的边界或Object类型,并在需要时插入类型转换代码。这样做可以保证泛型类型在运行时的行为与原始类型一致,但也带来了一些限制,比如无法在运行时获取泛型类型的信息总之,泛型是Java中的一个重要特性,它可以让我们编写更加通用和安全的代码。而泛型擦除则是Java泛型实现中的一种技术,它可以在不影响现有代码的情况下引入泛型特性,但也带来了一些限制。
发表于 2023-03-26 16:39:06 回复(0)
泛型是java中用来保证编译期安全的一种检测机制,本质上是将类型参数化。类型擦除发生在编译阶段,此时泛型会被转为具体的类型,在jvm中并不会记录集合的类型。
发表于 2023-03-10 13:43:03 回复(0)
Java在jdk1.5后引入了泛型,在没有泛型之前,每次从集合读取对象都需要进行类型转换,如果在插入对象时,类型出错,那么在运行时转换处理阶段就会报错。在提出泛型之后就可以指定集合所接受的对象类型,编译器就能知晓并自动的为代码进行泛型擦出,在编译阶段就会告知是否插入错误类型的对像。泛型擦出:Java的泛型是伪泛型,在字节码里将泛型擦除,字节码里是没有泛型的
发表于 2022-09-22 19:55:02 回复(0)
原先:泛型是在运行的时候再确定参数的类型。泛型的使用有三种:泛型类泛型方法泛型接口,其中尤其要注意泛型方法是怎么写的,泛型潜规则是T-任意类型,E-集合类型,k和V分别是key-value中的key和value。泛型具有安全性,消除转换,提高重用性,提升性能等特点。泛型还有泛型通配符,针对类型实参(比如String)。 之后: 添加:java是伪泛型,java代码在编译阶段中所有的泛型信息会被擦除,字节码不包含泛型信息,这就是泛型擦除。在编译的时候有一些泛型会换成Object等
发表于 2024-05-30 20:43:52 回复(0)
参数类型化、 代码写好的泛型,在编译时会擦除
发表于 2024-05-28 15:10:43 回复(0)
泛型就是模板 可以重复套用不同的数据类型 方法或者接口 或者类 泛型擦除就是在编译期间泛型就会被擦除,并作出相应的类型转换
发表于 2024-05-25 11:38:48 回复(0)
1.泛型:Java在jdk1.5引入泛型,在没有泛型之前,每次从集合中读取的对象都必须进行类型转换,如果在插入对象时,类型出错,那么在运行时转换出了的阶段就出错;在泛型提出之后就可以明确的指定集合接受哪些对象类型,编译器就能知晓并且自动为插入的代码进行泛化。 2.泛型擦除:Java是伪泛型,我们在代码中写好的泛型,,在编译时还会去掉,这就是泛型擦除
发表于 2024-05-19 23:31:05 回复(0)
泛型的本质是参数化类型,即给类型指定一个参数,泛型:泛型接口,泛型类,泛型方法,泛型的好处:1编译时会检查类型安全 2所有的强制转换都是自动的和隐式的,提高了代码复用 泛型擦除:我们在代码中写好的泛型,在编译时会被去掉
发表于 2024-05-13 08:57:04 回复(0)
泛型提高了代码的复用性,能够使编写代码的是否不具体指定需要的类型。然而由于java万物皆对象,所有类对象都是Object的子类,所以在编译时会进行泛型擦除,将泛型替换为Object
发表于 2024-05-12 15:23:25 回复(0)
泛型是用于解决代码通用性的问题的,在java中编写泛型类只需要在类后加上一个尖括号包括的类参数即可,后续使用时需要提前指定好类参数才可以创建对象,否则会默认创建类参数的上限类,比如Object。在没有泛型之前,类的通用性只能通过Object这种顶级的类作为数据的接收,不方便代码的维护,在多程序员下编写的代码可能存在对象类型存错的情况,后续就会报无法转换类的错误。java在jdk1.5后引入的泛型就是为了解决这个问题并提高代码的维护性。但java为了兼容老版本的jdk,所以对泛型还打上了一个泛型擦除的标签,这个泛型擦除会在编译后擦除,他会将你填写的类参数擦去,并改用上限类作为对象接收,这就导致了我们所创建的一个类下的多个不同类参数的类只有一个.class字节码文件,比如List<integer>和List<string>均是List<object>的字节码所创建的对象。这可以减少字节码文件所占用的内存,但导致程序员无法创建一些泛型类的数组等。此外,泛型擦除后还引发了一系列的问题,例如桥接就是解决了泛型类继承后重写方法的漏洞 </object></string></integer>
发表于 2024-04-29 23:40:36 回复(0)