# Java 變數的部署與儲存方式 首先要了解在一般的記憶體中(RAM, Random-Access Memory) 有關 Global、Stack 與 Heap 儲存空間。 如下圖: ![](https://i.imgur.com/w2kpSHP.jpg) ## Global-儲存媒體: 存放著被宣告為 static 的類別成員變數。 是屬於這個(CLASS)類別的,並不會因為另外建立出一個新物件時 而配置一個新的類別成員變數供該物件存取。這裡變數一經設定 不可再改變,並不屬於物件即是全域的類別成員 。 ## Stack-儲存媒體: 是**存放Java中宣告為基本資料型別(Primitive Type)的變數內容**。 或**存放物件變數的參考內容值**(object reference variable)的地方。 當新的宣告產生時,stack 將有指標直接指向該變數,所以在存取該變數資料內容時的處理速度較快。 ## Heap-儲存媒體: **存放被宣告為參考資料型別(Reference Type)的物件實體**, 但該物件的參考內容值(object reference variable)是存放在 stack 中。 一般來說,在 Heap 中儲存的資料沒有一定限制, 但盲目與不當的使用很容易造成記憶體空間與存取時間的浪費 。