JVM内存组成部分及其作用

JVM:类加载器,运行时数据区(Java内存),执行引擎,本地接口

运行时数据区(JVM内存/Java内存):

  1. 堆:对象实例
  2. 方法区:类信息,常量,静态变量,编译后的代码
  3. 栈:局部变量表,方法出口
  4. 程序计数器:行号指示器。循环,跳转等基础指令
  5. 本地方法栈:VM调用native方法

执行引擎:

  1. gc
  2. 编译器

顺便说一下堆栈区别:

  1. 物理地址
    1. 堆不连续,栈连续
  2. 内存
    1. 堆运行时确认,大小不固定
    2. 栈编译时确认,大小固定  
  3. 存放内容
    1. 堆是对象实例,静态的对象
    2. 栈局部变量,返回结果  
  4. 程序可见度
    1. 堆共享
    2. 栈线程私有  
原文地址:https://www.cnblogs.com/ivy-xu/p/12508512.html