JVM内存模型

 JVM内存模型:

  1. java堆:在JVM中内存最大的一块区域,此区域存放new出来的对象实例。所有线程共享此区域。
  2. 方法区:存储类信息、常量、静态变量、 即时编译器编译后的代码等数据。
  3. 程序记数器:记录下一行要执行的命令行号。
  4. JVM栈:用于存储局部变量表、操作栈、动态链接、方法出口等信息。
    1. 局部变量表:存储局部变量。
    2. 操作栈:局部变量在运算的过程中使用的空间。
    3. 方法出口:方法结束时跳转的上一个方法
    4. 动态链接:局部变量中如果多态引用时,就会有动态链接。
  5. 本地方法栈:与JVM栈是类似,它只为native方法服务。

 

  

 

 堆的内存区域划分:

           

  

 

  1. 当new出来的对象,大小小于eden区域时,就会存在eden区域。当发生了垃圾回收时,将会被转到from。当from、to被垃圾回收到15后,将会被回收到老年代。  
  2. 当new出来的对象大于eden区域时,会直接放入老年代。
  3. 元空间(MetaData)是JDK1.8后出现的,在JDK1.8前为永久代。
posted @ 2019-11-27 11:21  leoBlog  阅读(99)  评论(0编辑  收藏  举报