Java 垃圾回收机制(面试高频问题之一)
生活随笔
收集整理的這篇文章主要介紹了
Java 垃圾回收机制(面试高频问题之一)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、如何判斷某個對象是否是垃圾
1.1、引用計數法
在java中是通過引用來和對象進行關聯的,也就是說如果要操作對象,必須通過引用來進行。那么很顯然一個簡單的辦法就是通過引用計數來判斷一個對象是否可以被回收。不失一般性,如果一個對象沒有任何引用與之關聯,則說明該對象基本不太可能在其他地方被使用到,那么這個對象就成為可被回收的對象了。
缺點: 這種方式的特點是實現簡單,而且效率較高,但是它無法解決循環引用的問題,因此在Java中并沒有采用這種方式(Python采用的是引用計數法)。
public class Main {public static void main(String[] args) {MyObject object1 = new MyObject();MyObject object2 = new MyObject();object1.object = object2;object2.object = object1;object1 = null;object2 = null;} }class MyObject{public Object object = null; }最后面兩句將object1和object2賦值為null,也就是說object1和object2指向的對象已經不可能再被訪問,但是由于它們互相引用對方,導致它們的引用計數都不為0,那么垃圾收集器就永遠不會回收它們。
1.2、可達性分析法
為了解決這個問題&#x
總結
以上是生活随笔為你收集整理的Java 垃圾回收机制(面试高频问题之一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于visual Studio2013解
- 下一篇: 图解Java 垃圾回收机制