JVM内存结构: 主要分为:方法区.堆.虚拟机栈.本地方法栈.程序计数器,其中方法区和堆是线程共享的,其他的都是线程隔离的. 方法区: 主要存放类的信息.静态变量.常量.编译后的方法代码,永久代PermGen是方法区的实现,JDK1.8后永久代被移除换成了元空间Metaspace,元空间的本质和永久代类似,都是对方法区的实现.不过元空间与永久代之间最大的区别在于:元空间并不在虚拟机中,而是使用本地内存.元空间大小,理论上取决于32位/64位系统可虚拟的内存大小. 堆: 唯一用途就是用来存放对象实…