网站域名需icp备案不错的网站开发公司
一、1.8之前
运行时数据区(进程共享)
- 运行时常量池
 - 为什么要有方法区: 
- jvm完成类装载后,需要将class文件中的常量池转入内存,保存在方法区中
 
 - 为什么是常量: 
- 常量对象操作较多,为了避免频繁创建和销毁
 
 
进程私有区域
- 虚拟机栈:主要用于方法的调用,每次函数调用都对应一个栈帧,方法结束(异常也可)弹出栈帧,由于方法中局部变量本身是实例变量的引用,因此栈中实际上保存的是对gc堆中对象的引用。
 - 本地方法栈:服务非java原生方法
 - 程序计数器
 
二、关于运行时常量池和串池
- 1.7之前:运行时常量池逻辑包含串池,位于方法区
 - 1.7:串池被放入了堆之中
 - 1.8:串池还在堆,方法区被取消,运行时常量池此时在原空间中
 
三、1.8及之后
将方法区拉出来,作为元空间,元空间使用直接内存
