静态变量存在JVM哪个区

如题
昨天面试跟面试官杠起来了,我说JDK1.7之后静态变量存在堆中,然后他说静态变量存在元空间,我就说存在堆。最后我看有点尴尬就附和他说元空间。友友们,静态变量到底存在哪里,还有遇到这种事情我该不该跟他杠到底
全部评论
堆。不过这种问题毫无意义,你入职半年以内都不可能接触到JVM的问题,他自己都够呛能解决一次gc
21 回复 分享
发布于 2024-04-17 21:39 上海
你是对的。 static变量的元数据是存元空间,但是其数值是在堆里。 你可以试试看分配超大的static数组,是堆溢出。
11 回复 分享
发布于 2024-04-17 16:17 浙江
我只知道CPP有全局/static区,评论区都说堆,看来CPP和JAVA内存这块不太一样
2 回复 分享
发布于 2024-04-20 22:18 黑龙江
我记得存在堆里面的对象class里面,元空间里面有个指针指向这个class 但是八股啥的都直接说的在元空间
1 回复 分享
发布于 2024-04-17 12:55 四川
1.7开始,静态变量从永久代中移出到堆中,1.8的静态变量也仍然在堆中,元空间放的是类的元数据和运行时常量池。
1 回复 分享
发布于 2024-04-17 14:07 广东
在元空间吧,运行时常量池和类变量
1 回复 分享
发布于 2024-04-17 15:39 江苏
静态变量在堆里
1 回复 分享
发布于 2024-04-17 20:58 江苏
静态变量存储在方法区。永久带和元空间是方法区的具体实现,1.8 以及之后的版本将永久带替换成元空间了。方法区是通过堆的元空间来实现的。
点赞 回复 分享
发布于 2024-04-18 22:23 广东
面试官说啥都是对的😂,你和他争什么
点赞 回复 分享
发布于 2024-04-22 09:12 辽宁

相关推荐

2024-11-21 14:22
门头沟学院 硬件开发
点赞 评论 收藏
分享
评论
11
28
分享

创作者周榜

更多
牛客网
牛客企业服务