說我有一個字符串列表或任何真的。然後說我想在下一位代碼中多次使用字符串ONE。我是否應該在下面的代碼中創建一個新的字符串變量foo String foo = list.get(position)
並使用foo
,或者每次需要使用該字符串時是否應該保存內存空間並使用list.get(position)
?或者他們實際上是同一件事情?在Java中爲Android更快更高效
如果列表中包含一個更復雜的類,它可能會執行大量計算來實例化或者本身有很多變量,因此創建一個新的佔用大量內存,答案會改變嗎?
我同意,從可讀性角度看,它是使用一箇中間變量比較方便,但是當你使用額外的變量,你在堆上分配一個額外的對象 - 一個額外的字符串 –
不,你不會 - 因爲解釋在我的回答中,一個變量是一個對象而不是對象本身的引用(=指針)。在'String s =「ABC」; String s2 = s;'只有一個字符串對象,但有兩個引用。 – assylias
是的,對不起,你說的對,早上混亂 –