我想知道昨天跳入腦海的一件事。
我爲誤導性標題提前道歉,但我真的不知道如何賦予這個權利。
那麼,假設我們是兩個對象ObjA
和ObjB
,並且,例如,ObjB
有一個方法將ObjA
對象作爲參數。走出去的範圍時匿名變量(?)的優點?
ObjA instanceA = new ObjA();
ObjB instanceB = new ObjB();
instanceB.method(instanceA);
或
new ObjB().method(new ObjA());
假設這是某種功能的機構,所以對象將被銷燬:
我們可以做到這一點(以Java作爲語言) 。
我的問題是:
我們是否通過不實例化單數對象並隱式調用第二個代碼來獲得性能優勢?
這種可讀性犧牲有價值嗎?
或者這一切都沒有,因爲隱式創建的對象將被存儲在內存中,並隨着範圍而死?
注意:我不知道我是否用「隱式」或「匿名」來說,但我在Google上沒有發現太多內容。
在Java中,這不應該performancewise關係。您可以查看兩個版本生成的字節碼。但作爲一般規則:使用更具可讀性的內容。 – Axel
你仍然在實例化相同數量的對象。即使您不指定變量,帶有「new」字的位也是實例。 – khelwood
沒有任何優勢。即使有,它會是很小的,你會浪費你的時間專注於這樣的事情。 – Kayaman