Java杂志测验:Car对象GC可达性判定结果正确性求证
Java对象可达性与垃圾回收疑问
01: var rl = new ArrayList<Repairable>(); 02: var car = new Car(); 03: var clutch = car.getClutch(); 04: var engine = (Repairable) null; 05: rl.add(car); 06: rl.add(clutch); 07: car = null; 08: clutch = null; 09: rl.add(engine); 10: rl.set(2, engine); 11: rl.remove(0); 12: rl.remove(1);
我认为执行第12行代码后,Car对象应该符合垃圾回收(GC)条件,但原解决方案却表示并非如此。
原文章指出“即使在第12行执行后,Car对象仍不符合GC条件”,还提到“第12行移除的是索引1处的null值,因此列表中仅剩clutch对象”,但实际上索引1处的是clutch对象而非null,我对此持异议,希望指正我的理解是否有误。
内容的提问来源于stack exchange,提问作者user3966432
相关产品推荐
相关产品推荐

