首先在Eclipse的Debug页签中设置虚拟机参数:

步骤: 
1、选中已经写好的项目 
2、Run->Debug configurations->Java Application 双击 
3、Arguments->VM arguments 
4、在VM arguments 里面就可以对虚拟机的内存参数进行设置 
5、设置完成后,Apply->Debug 
6、过程结束

采用《深入理解java虚拟机》的代码:
 

package com.xc;

import java.util.ArrayList;
import java.util.List;

public class HeapOOM {
    static class OOMObject{

    }

    public static void main(String[] args) {
        List<OOMObject> list = new ArrayList<OOMObject>();
        while(true){
            list.add(new OOMObject());
        }

    }

}

然后设置页面如下: 

参数解释: 
1,堆是存储对象实例的,创建的对象都是在堆中进行内存分配的;设置堆的大小:-Xmx20M(最大值) ,-Xms20M(最小值), 其中-Xmn设置年轻代大小。 
2,栈是存储局部变量,操作栈,动态链接,方法出口(都在栈桢中) 的地方,调用方法时,会创建栈桢;设置栈的大小:-Xss128K。 
3,方法区是存放Class的相关信息,如类名,访问修饰符,常量池,字段描述,方法描述等。此外运行时常量池是属于方法区的,即存放常量,静态常量等;设置方法区大小,-XX:PermSize=10M和-XX:MaxPermSize=10M。 
4,本地直接内存;设置本地直接内存大小:-XX:MaxDirectMemorySize(默认与-Xmx的值一样)。 

 


Debug结果:(换上我的哈~)

 

出现Java堆内存溢出时,异常堆栈信息 java.lang.OutOfMemoryError,会跟着进一步提示 : Java heap space。 
接下来 就是 调试 分析的过程了 暂且不写了 要继续上班咯~

 

 

----------------------------------------------------------------上面就是转载的文章-------------------------

原文出处:Eclipse设置虚拟机参数

 

 

该系列博文:

Could not create the Java Virtual Machine. --------------【Java错误】

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐