java内存结构:【方法区、栈、堆、本地方法区】

举报
iOS逆向 发表于 2021/10/15 23:59:33 2021/10/15
1.8k+ 0 0
【摘要】   前言 在学习java之前,要先了解java文件是如何运转的,就得了解一下JVM和java的内存结构。本文先介绍简单的java内存结构图,再总结一下程序运行时保存到什么地方。 简单的java内存结构图     1.方法区:用来存储代码。将.class文件加载到内存中,并存储在方...

前言

在学习java之前,要先了解java文件是如何运转的,就得了解一下JVM和java的内存结构。本文先介绍简单的java内存结构图,再总结一下程序运行时保存到什么地方。

简单的java内存结构图

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

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

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

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

5.执行过程:

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

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

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

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

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

程序运行时保存到什么地方

内存的分配。有六个地方都可以保存数据:
(1) 寄存器。这是最快的保存区域,

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

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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