1.8之前
JVM分区可以分为线程共有——新生代、老年代、永久代,线程私有—虚拟机栈、本地方法栈、程序计数器,具体这几个作用就不用介绍了吧
触发GC的区域可以是新生代、老年代
可能发生OOM的区域:堆、虚拟机栈(例如循环递归)、永久代(Class加载过多)、本地方法栈
1.8
废除了永久代,取而代之的是meta Space。
解决问题:
解决了永久代OOM的问题,meta Space不是JVM内存的一部分,属于本地内存的一部分,可以扩容,类似于arrylist吧。但也并不是越大越好的,毕竟这也是内存的一部分。