jvm------各个运行时数据库常见内存溢出分析与模拟

Posted lxoy

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了jvm------各个运行时数据库常见内存溢出分析与模拟相关的知识,希望对你有一定的参考价值。

一、堆溢出

jvm参数  -Xms11m -Xmx40m 

运行代码

    public static void main(String[] args)  {
        List<byte[]> list = new ArrayList<>();
        int i=0;
        while(true){
            list.add(new byte[5*1024*1024]);
            System.out.println("分配次数:"+(++i));
        }
    }

 

 运行结果

分配次数:1
分配次数:2
分配次数:3
分配次数:4
分配次数:5
分配次数:6
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
	at Stack.main(Stack.java:15)

Process finished with exit code 1

  分析:堆在jvm中是所有线程共享的一部分区域,其主要是存放实例对象,当实例对象需要分配的内存超过堆的最大内存,则会有堆溢出的问题。

 

 

哎不想写了 网上写了好多了

 

以上是关于jvm------各个运行时数据库常见内存溢出分析与模拟的主要内容,如果未能解决你的问题,请参考以下文章

JVM内存溢出的两大类型及解决方案

JVM内存溢出分析:堆内存溢出+虚拟机+方法区——JVM系列

JVM-Java内存区域与内存溢出

JVM内存管理和垃圾回收

Java中常见内存溢出模拟及错误分析

BAT面试必问题系列:深入详解JVM 内存区域及内存溢出分析