堆分为新生区和养老区当这两个区都满了就会出现OOM;
但是经过研究有百分之99的对象都是临时对象,用完就会被gc释放所以只要不是代码问题大概率不会出现oom
比如:一直向一个变量内存追加数据,总会有内存满的时候;如果是业务需要可以修改jvm的内存,把数值改大一些!(但是一般这种业务是有问题的),如果是代码中的bug则好好检查代码!或者项目中引用大量的第三方包、在程序启动时会创建很多对象时可以修改jvm内存来避免OOM的出现!在修改内存大小时要考虑服务器的总内存切勿影响系统正常运行和其他程序的运行!
创建一个主函数运行以下看看jvm的默认数据:
修改jvm内存数据:
设置最小(初始)内存为1024MB,最大内存为2048MB!