假设有个普通类outer,它有个内部成员类,名为inner,outer和inner均不是thread类型的,并且inner不是静态的,那当outer的实例没有引用,但是inner的实例仍然有引用时,outer的实例会不会被垃圾收集器收集走?能不能用示意的代码说明一下这个问题。谢谢了

解决方案 »

  1.   

    不能。inner类始终放有outer对类的引用。
    例如内部类直接可以引用外部类的属性:
    public class Out {  private String name;  private class Inner {
          public void setName(String name){
              Out.this.name = name;
          }
      }
    }