在循环中新建删除旧对象?

gru*_*htr 1 java oop garbage-collection

很抱歉这些简单的问题,但我是Java新手(通常用c写)

在循环中执行new删除对象的旧实例?

我需要类似的东西

   for(;;)
   {

     // work on here pixels[] 

     source = new MemoryImageSource(200, 200, pixels, 0, 50);
     image  = createImage(source;

    // then use image here

   }
Run Code Online (Sandbox Code Playgroud)

我只需要到达上面,在每个帧中新的包装sourceimage对象,并且不想打扰删除它,但我也不想将大量的它们存储为内存泄漏,
是否会自动删除?操作繁重吗?

NPE*_*NPE 5

是的,不再被引用的对象会被垃圾自动收集(在将来未指定点).

我建议移动的声明source,并image进入循环:

for(;;) {
  ...
  Source source = new MemoryImageSource(200, 200, pixels, 0, 50);
  Image image  = createImage(source);
  ...
}
Run Code Online (Sandbox Code Playgroud)

这不仅是优选的风格上,这也避免了各地保持最后一次迭代的对象为超过所需的时间.