美文网首页
Java虚拟机概述

Java虚拟机概述

作者: 响响月月 | 来源:发表于2018-12-04 16:59 被阅读0次

    运行时数据区,执行引擎,本地方法库,本地库接口

    • 执行引擎:解释代码
    • 本地方法库:系统底层方法库(C语言)

    Java虚拟机运行时数据区

    虚拟机栈,本地方法栈,程序计数器,方法区,堆。

    1. 虚拟机栈:
      存放引用,基本数据类型,方法局部变量

    2. 本地方法栈:
      存放在java中本地方法的声明
      通过JNI(Java Native Interface)技术调用

    3. 程序计数器:
      行号指示器,正在执行的虚拟机指令的地址。
      JVM中唯一没有OOM的区域

    4. 堆:
      对象实例
      ps:栈上分配,标量替换技术使有些小对象在栈不在堆
      新生代(Eden+2Survivor),老年代

    5. 方法区:
      类信息,常量,静态变量,编译后代码

    People p = new People(); 在堆上还是栈上分配?

    People p = new People();
    

    分为三步:

    1. People p; p为一个变量 -> 在栈上分配内存
    2. new People(); 在堆上生成对象
    3. p = new People 栈上变量p指向堆上People对象地址

    相关文章

      网友评论

          本文标题:Java虚拟机概述

          本文链接:https://www.haomeiwen.com/subject/wbhvcqtx.html