1. 程式人生 > >為什麼會有棧記憶體和對記憶體

為什麼會有棧記憶體和對記憶體

在一個方法執行時,每個方法的都會建立自己的記憶體棧,在這個方法內定義的變數將會逐個放入這個棧記憶體裡,隨著方法的執行結束,這個方法的記憶體棧也將自然銷燬。因

此,所有在方法中定義的區域性變數都是會放在棧記憶體中的;當我們在程式中建立一個物件時,這個物件將被儲存到執行時資料區,以便反覆利用(因為物件的建立成本通常較

大),這個執行時資料區就是堆記憶體。堆記憶體中的物件不會隨著方法的結束而銷燬,即使方法結束後,這個物件還可能被另一個引用變數所引用(在方法的引數傳遞時很常見),

則這個物件依然不會被銷燬。只有當一個物件沒有任何引用變數引用它時,系統的垃圾回收器才會在合適的時候回收它。