从第5版开始,泛型一直在Java中。在Java应用程序中使用泛型的性能影响是什么?您能解释性能影响的原因吗?在Java中使用泛型会影响性能吗?
回答
泛型是编译时的功能。运行应用程序时几乎没有影响。
像大多数表现问题一样;编写清晰简单的代码显得尤为重要,而且这通常会带来非常好的性能。
改变您对性能的原因的设计是一个经常犯错有人说你不应该这样做。在开始之前,我认为这是值得考虑的,但是当你有一个相对微不足道的表现问题时,你必须认识到这一点。
当你有一个更好的了解你的应用程序如何表现你最好写你的代码,并随后对其进行优化。即当你是真正的用例和分析器时。
它会影响应用程序的性能吗?
不,不会,因为它甚至没有出现在运行时会影响性能。
来自官方的线索:
当一个泛型类型实例化时,编译器的技术叫做类型擦除转换的类型 - 一个过程,其中,编译器将删除所有相关信息,输入参数和类型参数在一个类或方法中。
正如我已经说明here这两个程序转换为同样的字节码:
import java.util.*;
class Test {
public static void main(String[] args) {
List<String> l = new ArrayList<String>();
l.add("hello");
System.out.println(l.get(0).length());
}
}
import java.util.*;
class Test2 {
public static void main(String[] args) {
List l = new ArrayList();
l.add("hello");
System.out.println(((String) l.get(0)).length());
}
}
@downvoter,为什么downvote?请说明理由。 – 2011-06-03 07:53:28
不知道他们为什么低估,但我可以想象一些人(像我)不会同意你的解释。你应该比较性能是一个MyClass
泛型不会影响运行时性能。但是,它们可能会对您的开发性能产生积极影由于泛型,您可以在编译期间获得额外的检查,所以您可以更快地检测到某些错误。
是的,它会影响性能,因为编译器会创建类型转换。
例如:
List<String> strings = ...
String first = strings.get(0);
将变为:
List strings;
String first = (String)string.get(0);
然而,这并不重要,因为之前的Java泛型了这解决了同样的方式。在Java中,泛型只在编译时确保类型安全。
- 1. 使用jaxb XMLAdapter会影响性能吗?
- 2. NSClassFromString会影响性能吗?
- 3. 在GridView中使用android:numColumns =“auto_fit”会对性能产生影响吗?
- 4. django adminplus会影响性能吗?
- 5. 很多IFRAME会影响性能吗?
- 6. Javascript SetTimeOut会影响页面性能吗?
- 7. 您使用AWSDBProxy吗?扩展时性能会受到影响吗?
- 8. web.config中未使用的行会影响性能吗?
- 9. 做数据类型选择会影响性能吗?
- 10. 使用KMS进行AWS RDS加密会影响性能吗?
- 11. 未使用的mysql表会影响网站性能吗?
- 12. 使用渐变会影响WP7的性能吗?
- 13. 使用scriptlet会影响JSP的性能吗?
- 14. Java -verbose:gc性能影响?
- 15. 使用视图模型可以组织代码,但会影响性能吗?
- 16. 在css中有许多背景图像会影响性能吗?
- 17. 使用instanceof帮助和java cast类型异常是否会影响性能?
- 18. 在jQuery中使用live而不是绑定会对性能产生影响吗?
- 19. 在生产中使用ActionCable时,性能是否会影响?
- 20. 在java中使用System.getenv()的性能影响
- 21. 在Scala中使用类型模式会对性能产生什么影响
- 22. 性能影响
- 23. 禁用Drupal模块会影响性能吗?
- 24. 文件夹中有多个文件会影响性能吗?
- 25. 使用Pimpl的高级版本时性能可能会受到影响吗?
- 26. 实现IServiceBehavior会影响ServiceBehavior属性吗?
- 27. 功能原型对性能有影响吗?
- 28. phalcon模型中的多少列映射会影响性能?
- 29. Java中较弱/较不特定的类型是否会影响性能?
- 30. 在ProtoBuf上使用AsReferenceDefault = true会有什么性能影响
比较什么影响性能? – Arne 2017-08-15 13:18:38