2010-09-30 23 views
-3

通常,對於as對象,java會在不再需要時回收對象佔用的內存。但是與此同時,我們使用的是int語言,float語言和double語言的數據類型,它們是由java語言本身在內部定義的。不再需要這種數據類型的內存呢?程序執行後的int,float變量

請給我一個答覆...

Saravanan.P

+1

格式化的問題。它看起來像是在問什麼內存要求是針對值類型的,而不是參考類型。 – locka 2010-09-30 09:40:26

+1

不確定我要給的答案。所以如果我錯了,請糾正我。我認爲垃圾收集器收集沒有指向它的對象和變量。因此,如果你使一個變量爲null,那麼垃圾收集器會自動釋放內存。 – Emerion 2010-09-30 09:44:34

回答

3

一旦這些變量不再可訪問,Java將從內存中刪除所有變量。換句話說,內置的基本數據類型,只要你離開他們在被宣佈塊不消耗內存

不同的基本數據類型的內存使用情況是:

byte: 8 bit 
short: 16 bit 
int: 32 bit 
long: 64 bit 
float: 32 bit 
double: 64 bit 
boolean: 1 bit (it represents one bit, but can consume up to a byte) 
char: 16 bit 
+1

「假設你沒有將指針傳遞給另一個方法,但這很少有必要」這在Java – Cephalopod 2010-09-30 11:38:34

+0

中是不可能的,謝謝 - 糾正了 – 2010-09-30 14:10:49

0

場和靜態變量初始化爲0局部變量必須顯式初始化,否則編譯器會報告錯誤。

3

原始數據(如int,float等)在堆棧中分配,如果它們是本地方法變量,則在堆中分配,如果它們是成員變量(即類的字段)。只有堆是垃圾收集。

+0

對象中的原始字段將作爲該對象的一部分分配到堆上。只有本地變量分配在堆棧上。 – 2010-09-30 09:45:28

+0

同意。我忘了。感謝您指出。 – dogbane 2010-09-30 09:50:10