JVM|Java的基本数据类型

3 篇文章 0 订阅

参考极客时间专栏《深入拆解Java虚拟机》

Java基本数据类型:byte、char、short、int、long、boolean、float、double,支持数值计算。Java引入基本数据类型原因是:工程上考虑,因为基本数据类型能在执行效率、内存两方面提高软件性能。

JVM的boolean
JVM规范中,boolean映射成int类型,true映射为1,false映射为0。JVM规范同时要求Java编译器遵守此编码规则。

java基本数据类型
基本数据类型都有默认值、值域。默认值在内存中都是0。值域更小的数据类型可以转换为值域更大的数据类型,无需强制转换。
只有char、boolean是无符号的数据类型。char值为非负数,此特性作为数组索引分厂有用。

JVM中基本数据类型大小——存储
JVM调用一个Java方法创建一个栈帧。栈帧主要有两个部分:局部变量区、字节码操作数栈。
在JVM规范中,局部变量区等价于数组,可用正整数索引。只有double、long数据类型要两个数组单元来存储,其他基本数据类型、引用数据类型都只用一个数组单元存储。即byte、short、char、float占用空间和int一样,引用数据类型也是。在32位的HotShot中,这些类型在栈上占用4个字节;在64位HotShot中,占用8个字节。
以上情况只存在于存放在栈上的数据类型,存放在堆上的数据类型占用空间跟他们的值域吻合。
JVM中基本数据类型——加载
JVM算数运算几乎全部依赖于操作数栈。即要将中boolean、char、short、byte加载到操作数栈上,然后将栈上的值当成int类型来运算。对于无符号的boolean、char类型,加载伴随零扩展,即char值复制到int的低二字节,高二字节用0填充。对于short、byte类型,加载伴随符号扩展,即short值复制到int的低二字节,若为负最高位1填充其余高二位0填充。


ps:虚心求教。如果内容有误欢迎指出,如果内容帮助了你欢迎留下痕迹。

END

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值