1:ArrayList <String>和ArrayList <>之間的區別?
private List<String> blacklist = new ArrayList<String>();
2:
private List<String> blacklist = new ArrayList<>();
是否有使用第一或第二個編譯時間或以納秒性能的任何優勢?
1:ArrayList <String>和ArrayList <>之間的區別?
private List<String> blacklist = new ArrayList<String>();
2:
private List<String> blacklist = new ArrayList<>();
是否有使用第一或第二個編譯時間或以納秒性能的任何優勢?
這兩個語句在語義上是相同的。
第二個示例使用Java 7中的Diamond運算符,因此在編譯時會稍微慢一些。在運行時,它們將具有完全相同的性能,因爲泛型信息將被完全刪除。
您可能不會注意到「編譯時間稍慢」一點。菱形運算符是編譯器的簡單類型推斷功能。 – 2015-04-02 14:43:46
不一定,它可能會更復雜一點,因爲您也可以使用通配符。 – Crazyjavahacking 2015-04-02 14:45:35
沒有區別。在第二種情況下,編譯器推斷ArrayList
的通用類型。
後者完全是Java 7+,另一個不是。性能*納米*秒? – 2015-04-02 14:38:05
所以你想獲得1納秒?在編譯時?另外,@DaveNewton,第一個也是Java 7+! – 2015-04-02 14:38:56
@OlivierGrégoire澄清迂腐。 – 2015-04-02 14:39:43