面試題一:判斷對象是否已死
判斷對象是否已死就是找出哪些對象是已經死掉的,以後不會再用到的,就像地上有廢紙、飲料瓶和百元大鈔,掃地前要先判斷出地上廢紙和飲料瓶是垃圾,百元大鈔不是垃圾。判斷對象是否已死有引用計數演算法和可達性分析演算法。
1.引用計數演算法
給每一個對象添加一個引用計數器,每當有一個地方引用它時,計數器值加 1;每當有一個地方不再引用它時,計數器值減 1,這樣只要計數器的值不為 0,就說明還有地方引用它,它就不是無用的對象。如下圖,對象 2 有 1 個引用,它的引用計數器值為 1,對象 1有兩個地方引用,它的引用計數器值為 2 。