基本数据类型的成员变量存放在堆内存还是栈内存?

下面这个类A里的int a,是存放在堆还是栈(Java虚拟机栈)内存?

public class A {

    int a = 0;

    B b = new B();
}

b是对象的引用肯定是存放在堆内存,那a呢?

看网上说a也是存放在堆内存,但看书上说:

Java虚拟机栈(VM Stack)的局部变量表存放了编译期可知的各种基本数据类型(boolean、byte、char、short、int、float、long、double)

求解

绝地无双
浏览 1826回答 3
3回答

qq_笑_17

在java中只要是成员变量,一旦它所在类被实例化后,都是放在堆内存的,不管它是不是基础类型。局部变量才是放在栈内存的。所以java比其他语言内存安全的多。

函数式编程

堆内存,多个线程写操作这个对象的基本数据类型的成员变量会有线程安全问题.

天涯尽头无女友

局部变量表是方法才用到的。a是实例变量。这两者没有联系的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java