Java基本数据类型与包装类型的存储方式

一、基本数据类型的存储方式

1.1 作为成员变量时

​ 如果没有被 static 修饰的话,就存放在中。

不建议如此使用,应当使用基本数据类型对应的包装类型

​ 被static修饰,就存放在方法区中。

什么是static?

Java中的static关键字用于修饰成员变量和成员方法,表示它们属于类而不是对象。在Java中,每个类都有一个对应的Class对象,当类被加载时,它的Class对象会被创建并保存在方法区(Method Area)中。static成员变量和方法都存放在方法区中的Class对象中,而不是存放在堆内存中的对象中。

1.2 作为局部变量时

​ 存放在 Java 虚拟机栈(VM Stack)中的局部变量表中。

Tip:一个虚拟机栈帧包含局部变量表、方法返回地址、操作数栈、动态链接和一些附加信息

Java 运行时数据区域(JDK1.8 )

二、包装类型的存储方式

​ 包装类型属于对象类型,我们知道几乎所有对象实例都存在于中。

为什么说是几乎所有对象实例都存在于堆中呢?

这是因为 HotSpot 虚拟机引入了 JIT 优化之后,会对对象进行逃逸分析,如果发现某一个对象并没有逃逸到方法外部,那么就可能通过标量替换来实现栈上分配,而避免在堆上分配内存。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值