asdasd12356 2023-04-01 17:37 采纳率: 64.3%
浏览 21
已结题

方法区存的是类信息,这个类信息是否包含静态变量,但静态变量只存在于堆内存?

不是说静态变量都在堆里存储,那方法区也存有静态变量是啥意思。还是说方法区只是记录了静态变量的类型,然后赋值的时候在堆里完成?

  • 写回答

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

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 4月18日
  • 已采纳回答 4月10日
  • 创建了问题 4月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口