幕布斯6054654
2020-02-04 15:15:27
有時,java使我感到困惑。我要進行大量的int初始化。什么是真正的差異?Integer.toString(i)new Integer(i).toString()
3 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
Integer.toString調用類中的靜態方法Integer。它不需要的實例Integer。
如果調用new Integer(i),則創建type的實例Integer,該實例是封裝int值的完整Java對象。然后,toString在其上調用方法以要求它返回自身的字符串表示形式。
如果您只想打印int,則可以使用第一個,因為它更輕,更快且不占用額外的內存(除了返回的字符串)。
如果您想要一個表示整數值的對象(例如,將其放入集合中),則可以使用第二個對象,因為它為您提供了一個成熟的對象,可以執行裸操作無法完成的所有事情int。

吃雞游戲
TA貢獻1829條經驗 獲得超7個贊
new Integer(i).toString()
首先在i
其周圍創建一個(冗余的)包裝對象(它本身可能是一個包裝對象Integer
)。
Integer.toString(i)
首選,因為它不會創建任何不必要的對象。

鳳凰求蠱
TA貢獻1825條經驗 獲得超4個贊
另一種選擇是靜態String.valueOf方法。
String.valueOf(i)
對我來說,這感覺稍微正確一點Integer.toString(i)。當i的類型更改時,例如從int到double,代碼將保持正確。
添加回答
舉報
0/150
提交
取消