JVM内存组成部分及其作用
JVM:类加载器,运行时数据区(Java内存),执行引擎,本地接口
运行时数据区(JVM内存/Java内存):
- 堆:对象实例
- 方法区:类信息,常量,静态变量,编译后的代码
- 栈:局部变量表,方法出口
- 程序计数器:行号指示器。循环,跳转等基础指令
- 本地方法栈:VM调用native方法
执行引擎:
- gc
- 编译器
顺便说一下堆栈区别:
- 物理地址
- 堆不连续,栈连续
- 内存
- 堆运行时确认,大小不固定
- 栈编译时确认,大小固定
- 存放内容
- 堆是对象实例,静态的对象
- 栈局部变量,返回结果
- 程序可见度
- 堆共享
- 栈线程私有