哪些部分会出现内存溢出
不会出现内存溢出的区域-程序计数器
出现OutOfMemoryError的情况
① 堆内存耗尽-对象越来越多,又一直在使用,不能被垃圾回收
② 方法区内存耗尽-加载的类越来越多,很多框架都会在运行期间动态产生新的类
③ 虚拟机栈累积-每个线程最多会占用1M内存,线程个数越来越多,而又长时间运行不销毁时
出现StackOverflowError的区域
①虚拟机栈内部-方法调用次数过多
方法区与永久代、元空间之间的关系
①方法区是JVM规范中定义的一块内存区域,用来存储类元数据、方法字节码、即时编译器需要的信息等
②永久代是Hotspot虚拟机对JVM规范的实现(1.8之前)
③元空间是Hotspot虚拟机对JVM规范的实现(1.8以后),使用本地内存作为这些信息的存储空间