gavin_yue
发贴: 10
积分: 0
|
于 2005-10-24 19:33
Seairy 说的对~!
lifecoolwind wrote: QUESTION NO: 4 Given: 1. class Test { 2. private Demo d; 3. void start() { 4. d = new Demo(); 5. this.takeDemo; 6. } 7. 8. void takeDemo(Demo demo) { 9. demo = null; 10. demo = new Demo(); 11. } 12. } When is the Demo object, created on line 3, eligible for garbage collection? A. After line 5. B. After line 9. C. After the start() method completes. D. When the takeDemo() method completes. E. When the instance running this code is made eligible for garbage collection. Answer: E
此题为什么选E而不是选B (题出自上面那位贴出的testking)
这里有一个PASSING BY VALUE的问题 PASSING 的只是一个COPY 所以d只是把它引用的对象的一份COPY PASS到takeDemo(Demo demo)方法 至于takeDemo(Demo demo)方法怎么操作这份COPY 与d无关
lifecoolwind wrote: Given: 10. public Object m() { 11. Object o = new Float(3.14F); 12. Object [] oa = new Object[1]; 13. oa[0] = o; 14. o = null; 15. return oa[0]; 16. } When is the Float object, created in line 11, eligible for garbage collection? A. Just after line 13. B. Just after line 14. C. Never in this method. D. Just after line 15 (that is, as the method returns). Answer: B
why B but not C
而这道题 不涉及到这个问题 o和oa[0]引用的是同一个对象 其中一个对这个对象的操作 都会影响到另外一个
|