java进阶:【java内存结构】

举报
iOS逆向 发表于 2021/10/15 23:19:53 2021/10/15
1.6k+ 0 0
【摘要】   前言 1.每一个方法执行时,都有一个独立的内存空间,给内存空间在方法执行完毕之后,随之被回收。这个入地的内存空间称之为栈帧。 2.堆存放的是当前java程序执行时共享数据。在堆中,如果一个对象没有被变量指向,该变量就符合垃圾回收机制的条件。   正文 简单的java内存结构图 &nbs...

前言

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

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

正文

简单的java内存结构图

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

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

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

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

5.执行过程:

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

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

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

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

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

文章来源: kunnan.blog.csdn.net,作者:iOS逆向,版权归原作者所有,如需转载,请联系作者。

原文链接:kunnan.blog.csdn.net/article/details/22148433

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

作者其他文章

评论(0

抱歉,系统识别当前为高风险访问,暂不支持该操作

    全部回复

    上滑加载中

    设置昵称

    在此一键设置昵称,即可参与社区互动!

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

    *长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。