JAVA内存图

2022-07-12  本文已影响0人  Eqo

Jvm虚拟机的内存有 栈 堆 方法区 本地方法区 寄存器等组成

栈 :存储局部变量已经代码的执行

特点:先进后出,先执行栈顶元素

堆:存储所有的new出来的对象.

当堆中的数据 没有指针指向的时候 会被当成垃圾 由GC回收

方法区:存储字节码文件

.class文件

本地方法区 系统相关

寄存器 cpu

image.png

1_当我们运行.java文件的时候,通过编译器讲.java文件编译成.class文件
2_通过类加载器 将class文件用到的类 加载到方法区(此时将 arraydemo加载到方法区)
3_当JVM调用main方法的时候,将main方法进行一个压栈(执行哪个方法就会压栈)
4_从main方法当中一行一行读取代码,当读到 int[] arr =new int[3]的时候
会在mian方法的栈内存中开辟一个空间 存储变量 arr 在堆内存中开辟一个空间存储new 对象
5_将new 对象的 地址值返回给arr

上一篇 下一篇

猜你喜欢

热点阅读