Java ArrayList与lt;字符串>;和ArrayList<>;?
1:Java ArrayList与lt;字符串>;和ArrayList<>;?,java,performance,arraylist,compilation,Java,Performance,Arraylist,Compilation,1: private List blacklist=new ArrayList(); 2: private List blacklist=new ArrayList(); 使用第一个或第二个语句在编译时间或纳秒性能方面有什么优势吗?这两个语句在语义上是相同的。 第二个示例使用Java7中的菱形运算符,因此在编译时会稍微慢一点。在运行时,它们将具有完全相同的性能,因为泛型信息将被完全删除。没有区别。在第二种情况下,编译器推断ArrayList的泛型类型后者是Java 7+,而另一个不是。以纳秒
private List blacklist=new ArrayList();
2:
private List blacklist=new ArrayList();
使用第一个或第二个语句在编译时间或纳秒性能方面有什么优势吗?这两个语句在语义上是相同的。
第二个示例使用Java7中的菱形运算符,因此在编译时会稍微慢一点。在运行时,它们将具有完全相同的性能,因为泛型信息将被完全删除。没有区别。在第二种情况下,编译器推断
ArrayList
的泛型类型后者是Java 7+,而另一个不是。以纳秒为单位的性能?那么你想获得1纳秒?在编译时?还有,@DaveNewton,第一个也是Java7+@OlivierGrégoire澄清了迂腐的说法。你可能不会注意到编译时间“稍微慢一点”。菱形运算符是编译器的一个简单类型推断功能。不一定,它有点复杂,因为您也可以使用通配符。
private List<String> blacklist = new ArrayList<String>();
private List<String> blacklist = new ArrayList<>();