基于java中stack與heap的區(qū)別,java中的垃圾回收機制的相關介紹
#. 在java中有兩類內存。分別稱為stack(堆棧)和heap(堆)。
stack是程序內存空間,因此所有的基本類型和對象的引用是存在stack中。
heap是java虛擬機儲存對象的,它是一個巨大的內存,當你創(chuàng)造一個對象,java虛擬機把對象放入heap中,把創(chuàng)造的對象的地址放入stack中。
因此,基本類型、對象的引用儲存在stack中;對象儲存在heap中。
#. java中的垃圾回收機制
當你new一個新的對象,java分配必需的內存。當你用完一個對象時,java的垃圾回收器為你把內存收回。
垃圾回收以線程的形式在后臺運行,尋找那些無有用引用(reference)的對象,發(fā)現(xiàn)之后便銷毀對象,并收回內存。
垃圾回收是在java虛擬機間實現(xiàn)的,它們通常有相同的步驟,首先垃圾回收器獲得正在運行的線程和所有已經加載的類的快照,
然后所有線程中涉及到的對象被標記為最近使用的,當可能涉及的對象都被標記的時候,剩下沒標記的就被舍棄。
為了幫助虛擬機,我們主動移除一些不在需要的對象是一個不錯的做法,可以通過將引用設置為null來實現(xiàn)。
eg:
Text t = new Test();
t.someAction();
//all done
t = null;
相關文章
MyBatis使用級聯(lián)操作解決lombok構造方法識別失敗問題
這篇文章主要介紹了MyBatis使用級聯(lián)操作解決lombok構造方法識別失敗問題,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下2020-07-07springboot項目整合注冊功能模塊開發(fā)實戰(zhàn)
這篇文章主要介紹了springboot項目整合注冊功能模塊開發(fā)實戰(zhàn),在用戶的注冊是首先需要查詢當前的用戶名是否存在,如果存在則不能進行注冊,相當于一個查詢語句,本文通過實例代碼詳細講解,需要的朋友可以參考下2022-11-11解決gateway報netty堆外內存溢出io.netty.util.internal.OutOfDirectMemor
這篇文章主要介紹了解決gateway報netty堆外內存溢出io.netty.util.internal.OutOfDirectMemoryError,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2023-12-12java使用RandomAccessFile類基于指針讀寫文件實例代碼
這篇文章主要介紹了java使用RandomAccessFile類基于指針讀寫文件實例代碼,具有一定參考價值,需要的朋友可以了解下。2017-10-10