Java中的內存泄露 和 JVM GC(垃圾回收機制)

1、什麼是Java中的內存泄露?

  在Java中,內存泄漏就是存在一些被分配的對象,這些對象有下面兩個特色,程序員

  首先,這些對象是可達的,即在有向圖中,存在通路能夠與其相連;其次,這些對象是無用的即程序之後不會再使用這些對象編程

  若是對象知足這兩個條件,這些對象就能夠斷定爲Java中的內存泄漏,這些對象不會被GC所回收,然而它卻佔用內存。對象

 

  在C++中,內存泄漏的範圍更大一些。有些對象被分配了內存空間,而後卻不可達,因爲C++中沒有GC,這些內存將永遠收不回來。blog

  在Java中,這些不可達的對象都由GC負責回收,所以程序員不須要考慮這部分的內存泄露。內存

  經過分析,咱們得知,對於C++,程序員須要本身管理邊和頂點,而對於Java程序員只須要管理邊就能夠了(不須要管理頂點的釋放)。效率

  經過這種方式,Java提升了編程的效率。內存泄漏

相關文章
相關標籤/搜索