zoukankan      html  css  js  c++  java
  • JVM运行时内存模型

    JDK1.7版本图

    一,栈
       基本数据类型的局部变量是直接保存在栈中。

    栈帧:一个栈里面会包含多个栈帧,每一个栈帧代表一个方法的开始到结束,它涵盖了整个方法运行期间所有的操作和数据

    栈帧

      1:局部变量表(变量)

        局部变量的值相同时,jvm对此进行优化,引用同一个值

      2:操作数栈(压栈,弹栈操作)

        汇编

        不同的push就是不同长度的数据进行压栈

      3:动态链接

      4:方法的返回地址

    二,堆
      虚拟机启动时创建。这个区域是用来存放对象实例的

    每当运行一个Main方法,都会启动一个JVM的实例进程。

    当一个实例没有任何引用的时候,它就是jvm的回收对象

    三,方法区(永久带)

       存放类于接口的所有信息

      a)名称

      b)访问修饰符

      c)类的字段,类,名称,

      d)方法,返回值,

      e)常量池(字面量)

    JDK1.8后将方法区合并到堆里面,合并后开辟一个元空间(Metaspace)

    学习笔记未完待续……

  • 相关阅读:
    Oracle中对多行查询结果进行拼接
    DX使用随笔--NavBarControl
    DX使用随记--其他
    DX使用随记--GroupControl
    DX使用随记--ImageComboBoxEdit
    DX使用随记--TabControl
    Oracle相关
    DX使用随记--GridControl
    一个NPOI导出到excel文件的范例记录
    python数据类
  • 原文地址:https://www.cnblogs.com/javaLin/p/7903291.html
Copyright © 2011-2022 走看看