【问题标题】:Difference between ArrayList<String> and ArrayList<>? [duplicate]ArrayList<String> 和 ArrayList<> 的区别? [复制]
【发布时间】:2015-04-02 14:37:03
【问题描述】:

1:

private List<String> blacklist = new ArrayList<String>();

2:

private List<String> blacklist = new ArrayList<>();

使用第一个或第二个在编译时间或纳秒性能方面有什么优势吗?

【问题讨论】:

  • 后者是 Java 7+ 专有的,另一个不是。 nano秒的性能?
  • 所以你想获得 1 纳秒?在编译时?另外,@DaveNewton,第一个也是 Java 7+!
  • @OlivierGrégoire 为迂腐澄清。

标签: java performance arraylist compilation


【解决方案1】:

两个语句在语义上是相同的。

第二个示例使用 Java 7 中的 Diamond 运算符,因此在编译时会慢一些。在运行时,它们将具有与完全删除泛型信息完全相同的性能。

【讨论】:

  • 您可能不会注意到“有点慢”的编译时间。菱形运算符是编译器的一个简单类型推断功能。
  • 不一定,因为你也可以使用通配符,所以有点复杂。
【解决方案2】:

没有区别。在第二种情况下,编译器会推断出ArrayList 的泛型类型。

【讨论】:

    猜你喜欢
    • 2015-12-07
    • 2014-07-22
    • 2017-05-08
    • 2013-12-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    相关资源
    最近更新 更多