Java中的内存泄漏

在C语言中,程序员完全控制动态创建的对象的分配和释放。如果程序员不销毁对象, 内存泄漏发生在C语言中 ,

null

Java做自动垃圾收集。但是,在某些情况下,垃圾收集器不会收集对象,因为存在对它们的引用。在某些情况下,应用程序可能会创建很多对象而不使用它们。因为每个对象都有有效的引用, Java中的垃圾收集器 不能破坏物体。这种类型的无用对象称为内存泄漏。若分配的内存超出限制,程序将因出现OutOfMemoryError而终止。因此,如果不再需要某个对象,强烈建议使该对象符合垃圾收集器的条件。否则,我们应该使用一些进行内存管理的工具来识别无用的对象或内存泄漏,例如:

  • HP OVO
  • 高压J表
  • JProbe
  • IBM Tivoli

JAVA

// Java Program to illustrate memory leaks
import java.util.Vector;
public class MemoryLeaksDemo
{
public static void main(String[] args)
{
Vector v = new Vector( 214444 );
Vector v1 = new Vector( 214744444 );
Vector v2 = new Vector( 214444 );
System.out.println( "Memory Leaks" );
}
}


输出:

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space exceed

© 版权声明
THE END
喜欢就支持一下吧
点赞6 分享