-
package com.shi.jvm; -
public class StackTest { -
/** -
* 递归调用 -
*/ -
public static void add() { -
add(); -
} -
/** -
* 栈满了异常 -
* Exception in thread "main" java.lang.StackOverflowError -
* @param args -
*/ -
public static void main(String[] args) { -
add(); -
} -
}
-
package com.shi.jvm; -
public class HeapTest { -
public static void main(String[] args) { -
/** -
* 堆内存异常 -
* 输出结果:当前最大可用内存多少M : 1724 -
* Exception in thread "main" java.lang.OutOfMemoryError: Java heap space -
* at com.shi.jvm.HeapTest.main(HeapTest.java:8) -
*/ -
System.out.println("当前最大可用内存多少M : "+Runtime.getRuntime().maxMemory()/1024/1024); -
//创建一个大对象 -
byte[] b = new byte[1*1024*1024*1725]; -
System.out.println("大对象创建成功"); -
} -
}
-
package com.shi.jvm; -
import java.util.Random; -
/** -
* -Xms1024m -Xmx1024m -XX:+PrintGCDetails -
堆初始化内存,堆最大内存 打印出堆GC回收信息 -
* @author shiye -
* -
*/ -
public class HeapSpaceTest { -
public static void main(String[] args) { -
/** -
* 输出: MAX_MEMERY = 1808269312(字节)1724.5MB -
TOTAL_MEMERY = 122683392(字节)117.0MB -
* @param args -
*/ -
// long maxMemory = Runtime.getRuntime().maxMemory();//返回Java虚拟机试图使用的最大内存量 -
// long totalMemory = Runtime.getRuntime().totalMemory();//返回当前使用的java虚拟机的内存总量 -
// System.out.println("MAX_MEMERY = " + maxMemory +"(字节)" + (maxMemory/(double)1024/1024) + "MB"); -
// System.out.println("TOTAL_MEMERY = " + totalMemory +"(字节)" + (totalMemory/(double)1024/1024) + "MB"); -
//-Xms8m -Xmx8m -XX:+PrintGCDetails -
String str = "www.shiye"; -
while(true) { -
str += str + new Random().nextInt(9999); -
} -
/** -
* 结果: Exception in thread "main" java.lang.OutOfMemoryError: Java heap space -
*/ -
} -
}
来源:CSDN
作者:小屁孩大帅-杨一凡
链接:https://blog.csdn.net/weixin_41722928/article/details/103457643