![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
jvm
软件测试开发架构师
这个作者很懒,什么都没留下…
展开
-
jvm中方法的存放位置
其实java方法是存在方法区的方法区:用于存储已被虚拟机加载的类信息、常量、静态变量、即时编译器编译后的代码等数据,方法编译出的字节码也是保存在这个区域。栈区(虚拟机栈):主要是存储局部变量表(当然也还有其他信息)。说到这可能有人疑惑,平时在运行一个方法时总说在栈区中开辟一块内存,这是怎么回事呢。其实栈区中的数据,也就是栈帧,他描述的是方法的一次执行瞬间。栈帧里面放的就是一些方法中的局部变量和方法的形参。并且这些局部变量/形参的生命周期是比较短暂的,在本方法调用的时候拥有生命,调用结束后转载 2021-08-20 10:21:11 · 2767 阅读 · 0 评论 -
jvm中变量的存放位置
记住一个原则即可:方法体中的引用变量和基本类型的变量都在栈上,其他都在堆上。对于局部变量:如果是基本类型,会把值和变量名直接存储在栈;如果是引用类型,比如String s = new String("william");会把其对象存储在堆,而把这个对象的引用(指针)存储在栈。对于成员变量:成员变量作为对象的属性,当然是放在堆里了。对象在堆里,对象中的内容就是各种字段。只有方法执行的时候所用到的各种指令参数才会入栈出栈。类的成员变量在不同对象中各不相同,都有自己的存储空间(成员变量转载 2021-08-20 10:10:21 · 1595 阅读 · 0 评论