前言

1.每一个方法执行时,都有一个独立的内存空间,给内存空间在方法执行完毕之后,随之被回收。这个入地的内存空间称之为栈帧。

2.堆存放的是当前java程序执行时共享数据。在堆中,如果一个对象没有被变量指向,该变量就符合垃圾回收机制的条件。

 

正文

简单的java内存结构图

java进阶:【java内存结构】_jvm

 

 

1.方法区:用来存储代码。将.class文件加载到内存中,并存储在方法区

2.栈:用来存储局部变量,形参,方法的返回值,中间运算结果

3.堆:成员变量,数组对象,方法的引用

4.本地方法区:存储链接本地方法相关的代码

5.执行过程:

执行了java命令之后,classloader将.class文件,加载到内存中并存储在方法区。

然后JVM调用main方法,顺次执行代码。

将局部变量存储在栈区中,将引用变量是指向内容存储在堆区中。

引用变量所指向的空间,用来存储hashcode码,顺次执行到mian方法完毕。

再通过classLoader将.class文件内容在JVM所占用的空间全部卸载。