java - 这是java内存泄漏吗

标签 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();

最佳答案

线程永远不会终止,所以垃圾收集器永远不会释放 x。但是,如果您从未真正使用过 x,它可能会被优化掉。如果您确实使用了 x,则这不可能是内存泄漏 - 您使用内存。

关于java - 这是java内存泄漏吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14499058/

相关文章:

java - Spark RDD MEMORY_AND_DISK_2() 中的存储级别抛出异常

c# - 在调用 ToUpper() 等之后,旧字符串对象是否会被垃圾回收?

jvm - 是否可以使用 pypy 将 Java 字节码编译为 native 代码?

java - 使用Java绘图: Applying Borders/Outlines to Shapes

java - 在 groovy bean 中注入(inject) Spring bean

c# - 我是否需要显式卸载动态加载的程序集?

Android 应用程序暂停 - 垃圾回收速度慢或 SQLite 性能问题?

Java:VM 如何在 32 位处理器上处理 64 位 `long`

java - 如何在 jruby 上优化 rails 项目?

java - 如何在 Android 中设置主菜单布局?