2015-04-02 147 views
-1

1:ArrayList <String>和ArrayList <>之間的區別?

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

2:

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

是否有使用第一或第二個編譯時間或以納秒性能的任何優勢?

+1

後者完全是Java 7+,另一個不是。性能*納米*秒? – 2015-04-02 14:38:05

+0

所以你想獲得1納秒?在編譯時?另外,@DaveNewton,第一個也是Java 7+! – 2015-04-02 14:38:56

+1

@OlivierGrégoire澄清迂腐。 – 2015-04-02 14:39:43

回答

2

這兩個語句在語義上是相同的。

第二個示例使用Java 7中的Diamond運算符,因此在編譯時會稍微慢一些。在運行時,它們將具有完全相同的性能,因爲泛型信息將被完全刪除。

+1

您可能不會注意到「編譯時間稍慢」一點。菱形運算符是編譯器的簡單類型推斷功能。 – 2015-04-02 14:43:46

+0

不一定,它可能會更復雜一點,因爲您也可以使用通配符。 – Crazyjavahacking 2015-04-02 14:45:35

0

沒有區別。在第二種情況下,編譯器推斷ArrayList的通用類型。

相關問題