一般情况下,集合中为什么要使用泛型?不使用泛型的情况下,集合中的元素是什么类型?
1个回答
展开全部
你这是两个问题:
1、使用泛型的好处
1)类型安全。泛型的主要目的就是提高Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设只能我们自己记或者代码注释;
2)消除强制类型转换。泛型一个附带好处是,消除代码中许多强制类型的转换。减少代码出错率,更好阅读;
3)潜在的性能收益。可以带来更好的优化可能。在泛型的初始实现中,编译器强制类型转换(没有泛型的话,程序员会指定这些强制类型转换,)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为以后的JVM可以带来更好的优化。由于泛型的实现方式,支持泛型几乎不需要JVM或类文件更改,所有工作都在编译器中完成,编译器生成的类没有泛型(和强制类型转换),只是来确保数据类型安全;
2、没有使用泛型的时候元素的类型
由于你的题目中国没有指定语言,特别说明:对于java和C#来说没有明确类型的对象都是Object。
1、使用泛型的好处
1)类型安全。泛型的主要目的就是提高Java程序的类型安全。通过知道使用泛型定义的变量的类型限制,编译器可以在一个高得多的程度上验证类型假设。没有泛型,这些假设只能我们自己记或者代码注释;
2)消除强制类型转换。泛型一个附带好处是,消除代码中许多强制类型的转换。减少代码出错率,更好阅读;
3)潜在的性能收益。可以带来更好的优化可能。在泛型的初始实现中,编译器强制类型转换(没有泛型的话,程序员会指定这些强制类型转换,)插入生成的字节码中。但是更多类型信息可用于编译器这一事实,为以后的JVM可以带来更好的优化。由于泛型的实现方式,支持泛型几乎不需要JVM或类文件更改,所有工作都在编译器中完成,编译器生成的类没有泛型(和强制类型转换),只是来确保数据类型安全;
2、没有使用泛型的时候元素的类型
由于你的题目中国没有指定语言,特别说明:对于java和C#来说没有明确类型的对象都是Object。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询