toArray 與陣列初始化的效能影響
myList.toArray(new MyClass[myList.size()]) 或myList.toArray( new MyClass[0]) 提供了更好的效能,引起了Java 開發人員的好奇。雖然第二種方法看起來更簡潔,但創建時省略空數組的假設可能並不總是成立。
基準結果
闡明這個問題,使用 Java HotSpot 8 進行了微基準測試。下面顯示的結果表明,違反直覺的toArray(new MyClass[0]) 方法始終如一優於對應的toArray(new MyClass[myList.size()]):
說明
Java 虛擬機器(JVM) 與JIT編譯器採用最佳化這使他們能夠有效地創建和初始化適當大小的陣列。手動建立數組時,這些最佳化不可用。
結論
基於部落格文章智慧數組中提供的基準測試結果和進一步分析對於Ancients來說,顯然myList.toArray(newmyList MyClass[0]) 是專注於效能的情況下所建議的方法。 JVM 的最佳化有效消除了空數組創建開銷,從而提高了效能。
以上是`myList.toArray(new MyClass[myList.size()]) 與 myList.toArray(new MyClass[0]):哪個在 Java 中提供更好的效能?的詳細內容。更多資訊請關注PHP中文網其他相關文章!