簡體   English   中英

我們應該直接在Java中將參數作為變量或作為新對象傳遞給方法嗎

[英]Should we pass argument to a method as a variable or as a new object directly in java

考慮以下兩個對java中相同方法的調用:

1) doSomething(new Object[]{"something"}) ;

2)

Object[] obj = {"something"} ;

doSomething(obj);

就內存和時間效率而言,哪一個更有效? 我會說1)在記憶和時間效率上都更好。 原因是第二種選擇,要求我們創建另一個變量(額外的內存),然后將該值分配給變量(額外的時間)。 任何意見 ?

只是為了澄清該對象將僅創建一次,我說的是用於容納新創建對象地址的額外變量。

兩者在時間和記憶方面都相同。 編譯器可以優化額外的分配。

不同之處在於第二個版本使您有機會為變量指定一個有用的名稱,從而使代碼更清晰。

第二個調用使您可以在調用方法中重用該對象,但第一個則不能。

它不會在內存中產生任何影響,因為無論如何都會創建傳遞的對象。

您應該始終首先考慮更簡單和更清晰的內容。 僅當您知道存在問題時才應考慮性能,因為您是通過性能分析器或微基准測試對其進行測量的。

最好的選擇可能是使用varargs

doSomething("something");

void doSomething(String... args) { }

注意:這不僅是最簡單的,而且可能是最快的,因為JIT可以消除創建的String[]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM