Java 程序的执行流程&内存结构

一、运行流程在这里插入图片描述

①.将编写好的java源程序(.java)通过编译器生成字节码文件(.calss)
②.通过JVM类加载器加载所有的字节码文件
③.加载完字节码文件后交给JVM执行引擎执行Java程序。
  注意:所有的Java程序最终都是在运行时数据区来运行。

内存结构

           ①.方法区
    -类的信息(访问修饰符 全类名(包名+类名) 注解)
    -静态的成员的属性(static修饰的成员属性)
    -常量(static final 修饰的成员属性)
     final:

  •    1.fanal修饰的类不能被继承 String类默认final修饰
  •    2.final修饰的成员属性是常量
         常量是存储在方法区的常量池
  •    3.final修饰的方法不能被重写
        -静态方法(static修饰的成员方法)
        -成员方法
    ②.堆
      -new 出来的对象
      -数组、接口
    ③.栈
      -局部变量
      -对象的引用

静态变量和实例变量(成员变量)的区别?

①.静态变量存储在方法区(静态域)
②.实例变量存储在堆中
③.静态变量可以被所有的对象共享
④.实例变量只属于某一个实例

发布了10 篇原创文章 · 获赞 0 · 访问量 60

猜你喜欢

转载自blog.csdn.net/qq_40982398/article/details/104428228