这是一个java内存泄漏

use*_*196 6 java garbage-collection jvm

更新:看起来它不是内存泄漏,有人会根据此示例的扩展创建吗?
原始问题:假设我创建并启动一个不终止的线程,线程创建一个对象并引用,只要它还活着.请参阅以下代码.JVM垃圾会收集x吗?这会被视为内存泄漏吗?

public class MyRunnable implements Runnable{

    public void run(){
      X x = new X();
      while(true){}
   }
}

Thread t = new Thread(new MyRunnable());
t.start();
Run Code Online (Sandbox Code Playgroud)

izo*_*ica 5

线程永远不会终止,因此垃圾收集器永远不会释放x.但是,如果你从未真正使用x它,它可能会被优化.如果你使用x,这不能是内存泄漏 - 你使用内存.