不是说静态变量都在堆里存储,那方法区也存有静态变量是啥意思。还是说方法区只是记录了静态变量的类型,然后赋值的时候在堆里完成?
3条回答 默认 最新
- pzzhao 2023-04-01 20:39关注
方法区和Java堆一样,是各个线程共享的内存区域,用于存储已被加载的类信息、常量、静态变量、即时编译器编译后的代码等数据。虽然java虚拟机规范将方法区描述为堆的一个逻辑部分,但是它却有一个别名叫做Non-Heap(非堆),目的应该是与Java堆分开来。
—— 引自《深入理解Java虚拟机》周志明不同的JVM实现也不一样,以Oracle的HotSpot JVM 为例,JDK7 将字符串常量池从方法区移到了堆中,JDK8 已经移除了方法区,改为元空间。
详细的可以自己去看下《深入理解Java虚拟机》这本书,也可以看下这个博客简单了解一下 https://zhuanlan.zhihu.com/p/107776367本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 AT89C51控制8位八段数码管显示时钟。
- ¥15 真我手机蓝牙传输进度消息被关闭了,怎么打开?(关键词-消息通知)
- ¥15 下图接收小电路,谁知道原理
- ¥15 装 pytorch 的时候出了好多问题,遇到这种情况怎么处理?
- ¥20 IOS游览器某宝手机网页版自动立即购买JavaScript脚本
- ¥15 手机接入宽带网线,如何释放宽带全部速度
- ¥30 关于#r语言#的问题:如何对R语言中mfgarch包中构建的garch-midas模型进行样本内长期波动率预测和样本外长期波动率预测
- ¥15 ETLCloud 处理json多层级问题
- ¥15 matlab中使用gurobi时报错
- ¥15 这个主板怎么能扩出一两个sata口