jvm设置堆内存参数 java heap space解决方法( 二 )


static int x = 0; 3、本地方法栈,就是给本地方法的运行提供运行空间 。本地方法,指那些不是由Java代码编写的方法,可以通过本地方法去调用解释器、即时编译器或者垃圾回收器 。比如Object类中的clone()方法,真正实现的是c和c:
protected native Object clone() throws CloneNotSupportedException; 4、堆 。通过new创建的对象都会使用堆内存,可以通过-Xmx设定堆空间大小 。堆有两大特点,一是线程共享,堆中的对象都需要考虑线程安全的问题,二是它有垃圾回收机制 。
我们首先看一下堆内存溢出的问题,请看如下代码:
public class Demo1_4{public static void main(String args[]) {try {List list = new ArrayList<>();String a = "hello";while(true) {list.add(a);a = aa;}}catch (Exception e) {e.printStackTrace();}}} 运行后抛出堆内存溢出错误:
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space 5、方法区,是所有JVM共享的区域,存储了跟类的结构相关的信息:运行时常量池,类的成员变量,方法数据,以及成员方法和构造器方法的代码等 。方法区是在JVM启动时被创建的,可以通过-XX:Maxme

猜你喜欢