2013-10-14 46 views
1
int x; 
int y=10; 

Java中分配了什麼類型的內存?我聽說Java中的所有內容都被分配了動態內存。這對於對象來說是正確的,但對基本數據類型也遵循相同的規則(如int,float等)?Java中的靜態和動態存儲器

+0

我更習慣於對「棧」和「堆」 –

+1

術語一旦你得到你的答案尋找,你必​​須選擇你認爲最好的答案。 –

回答

6

在一行中,它取決於聲明變量的位置。

局部變量(在方法聲明的變量)存儲在上,而實例和靜態變量存儲在 *

注: 類型的變量不物。

class A{ 
    private int a = 10; ---> Will be allocated in heap 

    public void method(){ 
    int b = 4; ----> Will be allocated in stack 
    } 
} 
3

原始變量和函數調用存儲在堆棧中。對象存儲在堆中。

+0

,澄清我的懷疑...很好 – user162114

0

棧就是內存分配給原語和局部變量的存儲;在棧上也傳遞引用。

堆是內存分配給對象的地方,而內存又被稱爲堆內存。靜態變量與實例變量一起存儲在堆中。

1
  1. JVM堆棧存儲局部變量。
  2. 所有類實例和數組都在JVM堆上分配。
  3. 每類結構的方法區存儲
  4. 運行時間常量池店常量