当前位置:   article > 正文

JVM,堆,栈,方法区之间的关系_堆和栈在jvm里面吗

堆和栈在jvm里面吗

什么是JVM?

JVM就是Java虚拟机,它包含堆,栈以及方法区。

1. 堆中存放的是 对象实例

  1. // 堆中存放的就是 new Student()
  2. Student s = new Student() ;

2. JVM中只有一个堆区,它是被所有线程 共享 的,所以也需要注意线程安全的问题。

3. 成员变量 是对象的一部分,外部是可以调用的,所以是存在堆中的。

1. 栈中存放是 基本数据类型 对象的引用

  1. // 因为是基本类型,所以引用和值都存在栈中
  2. int a = 1;
  1. // 栈中存放的就是 s(对象的引用)
  2. Student s = new Student() ;

2. JVM中每个线程都有一个栈,里面的内容都是私有的,栈之间不能互相访问。

3. 局部变量 是在方法中的,方法外是不可以调用的,更像是线程私有的,所以是存放在栈中的。

方法区

1. 方法区又叫静态区,里面存放的是 .Class字节码文件static变量

2. JVM中只有一个方法区,它是被所有线程 共享 的,所以也需要注意线程安全的问题。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Gausst松鼠会/article/detail/653411
推荐阅读
相关标签
  

闽ICP备14008679号