为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

绝地无双 2019-02-20 12:21:20
下面这个类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) 求解
查看完整描述

3 回答

?
qq_笑_17

TA贡献1818条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-01
?
函数式编程

TA贡献1807条经验 获得超9个赞

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

查看完整回答
反对 回复 2019-03-01
?
天涯尽头无女友

TA贡献1831条经验 获得超9个赞

局部变量表是方法才用到的。a是实例变量。这两者没有联系的。

查看完整回答
反对 回复 2019-03-01
  • 3 回答
  • 0 关注
  • 1825 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号