jvm学习总结

一.Java虚拟机管理内存包括以下几个运行时数据区域:
1.程序计数器
2.java虚拟机栈
3.本地方法栈
4.java堆(其中java堆划分为年轻带、老年代)
5.方法区
(java虚拟机规范把方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做非堆,目的应该是与java堆区分开来。
很多人都更愿意把方法区称为“永久代”,本质上两者并不等价)
二.常见OOM异常
1.OutOfMemoryError:Java heap space
2.OutOfMemoryError:PermGen space
3.OutOfMemoryError:unable to create new native thread
第一种:java堆内存溢出
可以通过-Xmx和-Xms来调节堆大小
第二种:java虚拟机栈或本地方法栈溢出
可以通过-Xss来调节每个线程的堆栈大小
第三种:方法区溢出
可以通过-XX:PermSize和-XX:MaxPermSize来调节方法区大小

你可能感兴趣的:(jvm学习总结)