2011-05-28 130 views
2

我正在看一些lwjgl的教程,併發生在我身上,而不是將類實例化爲一個變量,實例化它並直接調用該方法而不保存該對象。實例化一個類或不是?

我在想,如果以後不必重用對象,或者最好始終保持對象,最好這樣做。

我的意思是這樣的:

(new Lesson02()).run(fullscreen); 

而是:

Lesson02 l2 = new Lesson02(); 
l2.run(fullscreen); 

感謝。

+0

疑問解決。謝謝大家! :) – Puyover 2011-05-28 20:51:40

+0

只是一個註釋......圍繞構造函數調用的括號不是必需的。 '新的Lession02()。運行(全屏);'應該工作都一樣。我認爲括號看起來很愚蠢,除非它嵌套在更大的表達式中。 – Andy 2011-05-28 22:02:07

+0

接受答案? – 2011-06-16 14:55:51

回答

3

如果您以後不打算使用該對象,則沒有任何區別。所以選項1是好的。如果您按照選項2,最終在代碼中稍後不使用l2,那麼無論如何它都會收集垃圾。

2

只要您以後不必使用該對象,那麼第一個選項應該沒問題。

2

我通常會使用第一個選項,除非構造函數和函數有很多參數,爲了便於閱讀,我更願意將其分開。一般規則:使用更易於理解和可讀的內容。

2

由於Java是一種垃圾收集語言,第一種方式是完全可以接受的。我更喜歡它,因爲它的緊湊性和第二個混亂。

2

這兩個選項實際上是相同的。

如果編譯器在優化時不好,那麼第一個編譯器可能會無限快地加快,因爲它更有可能被GC快速回收。

2

無論如何,前一個選項將創建一個臨時引用變量;命名或未命名,您有一個引用堆中對象的本地變量。如果它再也沒有被使用過,垃圾收集器會爲你清理。

這兩個選項僅在可讀性方面有所不同,因此您可以從該角度選擇您喜歡的選項。

1

第一種方式是最好的接受,因爲Java可以爲你分配內存。

+0

無論哪種方式,JVM都爲Lesson02對象分配內存。 – 2011-05-29 11:33:31

相關問題