IT程序员开发必备-各类资源下载清单,史上最全IT资源,个人收藏总结!
程序耗用58MB内存时: public class JVMDebug { public static void main(String[] args) { System.out.println("耗用内存前"); byte[] b = new byte[1024*1024*58];//耗用58MB内存 System.out.println("耗用内存后"); } } |
执行输出结果:
耗用内存前 耗用内存后 |
程序耗用59MB内存时:
public class JVMDebug { public static void main(String[] args) { System.out.println("耗用内存前"); byte[] b = new byte[1024*1024*59];//耗用58MB内存 System.out.println("耗用内存后"); } } |
执行输出结果:
耗用内存前 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at edu.jvm.JVMDebug.main(JVMDebug.java:6) |
原因: 这是因为JVM默认值为程序分配64MB的大小(不知道为什么59就不行了),如果程序超过了64MB的内存,那么程序就会抛出内存溢出错误
解决方案:运行程序时候在MyEclipse中使用"Run As"--> "Run Configurations"-->"Arguments" ,在VM arguments一栏中填入:"-Xmx80m" (或者Xmx81920k或Xmx83886080)
设置参数后:执行输出结果:
耗用内存前 耗用内存后 |