JVM 内存模型

JAVA 优点

  • 面向对象语言
  • 跨平台,“编写一次,随处运行”。
  • 稳健

JVM 一共分5块内存

java的程序运行在java虚拟机上,所以可以“编写一次,随处运行”。

java虚拟机简称JVM.

线程私有的:

  • 程序计数器

  • 虚拟机栈

  • 本地方法栈

线程共享的:

  • 方法区

JVM 内存模型_第1张图片

一个Test.java文件的执行过程

JVM 内存模型_第2张图片

package com.zz.util;

/**
 * @Description: java类作用描述
 * @Author: Bsea
 * @CreateDate: 2019/9/22$ 21:20$
 */
public class Test2 {
    final static String PARAM1="DDD";
    static String  s1="sss";
    String s2;
    String s3="aaa";
    int a=18;
    Test2(String a){
        this.s2=a;
        System.out.println(s1);
        System.out.println(s3);
    }
    public static void main(String[] args) {
        Test2 test2=new Test2("CCC");
    }
}

Test2 执行顺序分析

  • 9到13行是 类加载过程中执行的,值存在方法区,所以静态变量,常量,或者静态代码块,一定比构造函数先执行
  • 20行, 类加载完成以后,交给执行引擎,执行引擎找到程序入口main方法以后,创建一个“栈帧“
  • 碰到new关键字,执行构造函数Test2() 来创建一个对象,对象的值存在java虚拟机的“”堆“” 中,然后对象的引用,存入“栈帧“
  • 14到18行, 里面有打印语句,需要控制台显示信息,所以会调用本地方法,使用java虚拟机的“”本地方法栈“”

你可能感兴趣的:(java高级)