我想知道Java 7 菱形运算符与以前版本的Java语言结构之间是否存在任何已知的性能差异。
基本上,使用它会更快:
List<String> myList = new ArrayList<>()
Map<String, Integer> myMap = new HashMap<>()
或使用它:
List<String> myList = new ArrayList<String>()
Map<String, Integer> myMap = new HashMap<String, Integer>()
速度是否相同?
答案 0 :(得分:5)
生成的字节码是相同的。新的钻石操作符是纯粹实现的,以节省程序员不必冗余地指定类型两次。
答案 1 :(得分:4)
否定。由于类型擦除,菱形运算符(以及一般的泛型)具有与它们一直相同的运行时性能(例如,在运行时Collections
只保存对象)。