我可以在类的静态引用上多次调用new吗?

时间:2012-12-17 21:48:02

标签: java

class A {}

class B {
    static A someReference = null;

    void foo () {
        // does calling this function many times create new objects, or all objects will point to one memory.
        someReference = new A; 
    }
}

没有引用静态意味着它无法指向新的内存位置。 谢谢。

2 个答案:

答案 0 :(得分:3)

  

//多次调用此函数创建新对象,或者所有对象都指向一个内存。

致电new A()始终创建新对象。

当引用(someReference)重新分配给新创建的对象时,旧对象可能有资格进行垃圾收集。

答案 1 :(得分:2)

多次调用导致foo()的{​​{1}}每次都会创建new A()的新实例。

但是,之前的实例符合垃圾回收条件(因为A不再指向它),并且在下一个垃圾回收周期中很快就会被删除。