簡體   English   中英

在Java中這是更好的做法

[英]Which is a better practice in java

我有一個方法,它返回一些對象,讓我說一個String對象。

現在我有兩個可能性

public String someMethod(){

String data=getData(); //This method returns string

return data;
}

要么

public String someMethod(){

return getData();//This method returns string

}

考慮到性能/可伸縮性,以上哪一項是更好的實踐,也是更好的事情。 請給出您的觀點以支持答案。 謝謝你的時間。

如果您不打算修改變量,那么就沒有理由創建它的本地副本而只返回它。

該代碼的第二版更加簡潔明了,通常是首選。

如果您在性能方面不那么滿意,那么經過優化的編譯器很可能會為您完成轉換。

與任何編程語言一樣,您希望盡可能簡潔明了地表達它。 它們都可以編譯為完全相同的東西,但是后者更易讀,並且省略了不需要的代碼行。

我相信編譯器會將第二個變成第一個,從而為您優化它。 它不會為所有事情做到這一點,但在大多數情況下會做到。 但這全取決於可讀性。 無論您將如何更快地抓到,我都堅持下去。 但是他們都是一樣的。 與第一個唯一的區別是,您正在為指向該字符串的指針創建變量,因此“浪費”了不必要的內存。 但是同樣,在這種情況下,編譯器可能會對其進行優化。

這將幾乎完全歸結為樣式(第一個是糟糕的樣式-不要創建您不會使用的東西)。 任何優秀的編譯器都會注意到,通過消除未使用的局部變量,可以進行一些優化。 進行微小的調整(您認為是“優化”)確實很容易,但實際上只是開發人員感到聰明和浪費時間的一種嘗試。 即使編譯器沒有將第一個代碼段優化為第二個代碼段(實際上也可能進一步優化)。

在性能方面,從總體上講,體系結構決策真正會有所作為,而不是一項未使用的分配/分配操作。 不要陷入逐行優化的困境。 那些優化可能會留給編譯器。

第二個是更好的選擇。 在第一個中,您的可變數據沒有實際用途。 無論如何,我認為如果編譯該東西,編譯器無論如何都會將第一個更改為第二個。

第二個是更好的選擇,因為它需要更少的鍵入並減少了不必要的代碼。 始終嘗試使您的代碼盡可能可讀。

+1為第二個解決方案。 寫得越少,開發就越好!

first一個:

在編寫簡潔且易於理解的代碼方面很好,但是在初始化Sring對象時會使用更多的memory 。無論如何,編譯器將切換到第first ,然后,當任何其他開發人員想要編輯時,他可以在第一個初始化下直接添加代碼,如果他需要debug那就更好了。
適用於代碼管理。

second個:

在沒有其他對象初始化的情況下performance更好,而僅輸出所需的返回數據。 但這不是寫代碼的好習慣,而是寫代碼的性能和快速性。

第一個可以更直觀(在大學中,他們表明為什么,我認為那是您對此表示懷疑的原因)只是出於學習和調試任何可能的異常的目的,但總的來說,第二個是更好的和更好的選擇。

暫無
暫無

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

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