t在运行phone方法时会在 返回值one 作为局部变量会在 栈中被创建 那么 当phone 方法执行出栈时 one 是否应该被GC清除? 然后t1 再次调用phoen方法创建的 one 应该是 另一个 对象吧 还是说 在类被加载的时候 饥饿模式就已经创建了 one 然后 保存在堆里了? 求大老解答一下
我的理解:one只是作为一个指向对象的地址,被return后赋予给main栈空间中的t,one被清除,但是one所指向的phone对象是存在堆里并且被t所指向的,在生成t1的时候,phone栈空间内又会创建属于phone的one,将one指向新创建的phone对象,并将one的值返回给t1,创建后phone的栈空间被回收,gc应该是在return后做的
不一定准确,仅供参考
emmm...你是重写了phone类的hashCode()方法或者toString()方法了吧