深入理解Java虚拟机jvm-内存溢出OO-本机直接内存溢出(Direct Memory) java.lang.OutOfMemoryError

2023-10-31

本机直接内存溢出

示例

public class DirectMemoryOOM {
    private static final int _1MB = 1024 * 1024;

    public static void main(String[] args) throws IllegalAccessException {
        Field unsafeField = Unsafe.class.getDeclaredFields()[0];
        unsafeField.setAccessible(true);
        Unsafe unsafe = (Unsafe) unsafeField.get(null);
        while (true) {
            unsafe.allocateMemory(_1MB);
        }
    }
}

虚拟机参数

-Xmx20M -XX:MaxDirectMemorySize=10M
解释:

  • -Xmx20M:设置JVM的最大堆内存大小为20兆字节(MB)
  • -XX:MaxDirectMemorySize=10M:设置JVM的最大直接内存大小为10兆字节(MB)

输出

在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

深入理解Java虚拟机jvm-内存溢出OO-本机直接内存溢出(Direct Memory) java.lang.OutOfMemoryError 的相关文章

随机推荐