钻石运营商表现

时间:2013-12-14 21:24:18

标签: java java-7 diamond-operator

我想知道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>()

速度是否相同?

2 个答案:

答案 0 :(得分:5)

生成的字节码是相同的。新的钻石操作符是纯粹实现的,以节省程序员不必冗余地指定类型两次。

答案 1 :(得分:4)

否定。由于类型擦除,菱形运算符(以及一般的泛型)具有与它们一直相同的运行时性能(例如,在运行时Collections只保存对象)。