[問題] 資源回收的問題
Dear 大家,
這題是 SCJP JAVA 6.0 的習題
@@" 看半天還是不知道為什麼
所以上來請教大家一下
class Beta {
}
class Alpha {
static Beta b1;
Beta b2;
}
public class Tester {
public static void main(String[] args) {
Beta b1 = new Beta();
Beta b2 = new Beta();
Alpha a1 = new Alpha();
Alpha a2 = new Alpha();
a1.b1 = b1;
a1.b2 = b1;
a2.b2 = b2;
a1 = null;
b1 = null;
b2 = null;
// 做一些事情
}
}
當程式執行到"做一些事情",有多少物件有資格被資源回收?
A. 0
B. 1
C. 2
D. 3
E. 4
F. 5
答案:
B 是正確的。
很清楚的,
a2 有指涉到一個物件,
a2.b2有指涉到一個物件。
可能比較看不清楚的是,
你仍然可能透過 a2.b1 這個靜態變數來存取另外一個 Beta 物件,
因為那個變數是靜態的。
...
解答如上所示
但是它沒有交代的是
究竟是那一個變數有資格被資源回收?
所以我一直不是很了解
感謝大家
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 1.167.86.193
→
05/12 16:56, , 1F
05/12 16:56, 1F
推
05/12 17:01, , 2F
05/12 17:01, 2F
→
05/12 20:01, , 3F
05/12 20:01, 3F
討論串 (同標題文章)