吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 574|回复: 3
收起左侧

[求助] java中静态方法存储在哪,方法区还是java栈

[复制链接]
imaxonor 发表于 2022-11-26 19:30
java中静态方法存储在哪,方法区还是java栈,运行时数据又存在哪,会像非静态方法一样在java栈中创建一个栈帧么?

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

phubing 发表于 2022-11-26 23:38
https://www.coder.work/article/6302513

https://www.fke6.com/html/18881.html

https://www.zhihu.com/question/54129548/answer/2399852601
siegod 发表于 2022-11-27 03:50
方法区组成:字符串常量池、元空间(运行时常量池、类型信息...)

常说运行时常量池就是类信息的ConstantPool,每个class都有一个ConstantPool 存储字面量、符号引用、方法描述符、类描述符、字段描述符等等,你通过反编译就可以看到

当我们进行类加载时候就会在链接-解析阶段将符号引用替换为直接引用,说白了就是解析类方法时创建method对象,然后设置ConstantPool中符号引用所在Entry的属性指向method内存地址(非final方法存储虚方法表索引值)

静态方法/非静态方法执行是一样的,都会申请栈帧进行动态链接指向method内存地址

运行时数据又存在哪? 当然是JVM申请内存空间,运行时数据区:方法区、堆、虚拟机栈、本地方法栈、程序计数器





 楼主| imaxonor 发表于 2022-11-28 11:55
siegod 发表于 2022-11-27 03:50
方法区组成:字符串常量池、元空间(运行时常量池、类型信息...)

常说运行时常量池就是类信息的Consta ...

高手啊  看来您对这块了解的很多
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-25 03:21

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表