java gc是什么
gc是指垃圾回收機制,當一個對象不能再被后續(xù)程序所引用到時,這個對象所占用的內(nèi)存空間就沒有存在的意義了,java虛擬機會不定時的去檢測內(nèi)存中這樣的對象,然后回收這塊內(nèi)存空間。
gc是Java與C++/C的主要區(qū)別之一,在使用JAVA的時候,一般不需要專門編寫內(nèi)存回收和垃圾清理代 碼。這是因為在Java虛擬機中,存在自動內(nèi)存管理和垃圾清掃機制。
GC的基本原理:
1. 對于程序員來說,用new關(guān)鍵字即在堆中分配了內(nèi)存,我們稱之為“可達”。對于GC來說,只要所有被引用的對象為null時,我們稱之為“不可達”,就將進行內(nèi)存的回收。
2. 當一個對象被創(chuàng)建時,GC開始監(jiān)控這個對象的大小、內(nèi)存地址及使用情況。GC采用有向圖的方式記錄和管理堆(heap)中的所有對象,通過這種方式可以明確哪些對象是可達的,哪些不是。當確定為不可達時,則對其進行回收。
3. 保證GC在不同平臺的實現(xiàn)問題,java規(guī)范對其很多行為沒有進行嚴格的規(guī)定。對于采用什么算法,什么時候進行回收等。
php中文網(wǎng),大量的免費Java入門教程,歡迎在線學(xué)習(xí)!