栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Java中的基本数据类型占多少内存空间?

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java中的基本数据类型占多少内存空间?

这里写目录标题
  • Java中的基本数据类型占多少内存空间?
  • 为什么boolean类型特殊?
  • 为什么在编译之后boolean都使用Java虚拟机中的int数据类型来代替?
  • boolean 类型的总结:

Java中的基本数据类型占多少内存空间?
  • byte: 8位 1字节
  • char: 16位 2字节
  • short 16位 2字节
  • int 32位 4字节
  • float: 32位 4字节
  • long: 64位 8字节
  • double: 64位 8字节
  • boolean: 32位 4字节,在数组中时 8位 1字节
为什么boolean类型特殊?

为什么 boolean 类型在单独使用占4个字节,而存储到boolean数组中,每个元素只占1个字节.

在《虚拟机规范》中,对boolean类型的存储有专门的解释,文中说到:“虽然定义了boolean这种数据类型,但是只对它提供了非常有限的支持。在Java虚拟机中没有任何供boolean值专用的字节码指令,Java语言表达式所操作的boolean值,在编译之后都使用Java虚拟机中的int数据类型来代替,而boolean数组将会被编码成Java虚拟机的byte数组,(因此)每个boolean元素占8位”。

主注: Oracle 的jdk按这个规范来,但是其他虚拟机版本不一定了,会综合考虑运算效率与储存空间两方面的性能.

为什么在编译之后boolean都使用Java虚拟机中的int数据类型来代替?

因为计算机完成寻址操作的时候,是以字节为最小单位进行的。也就是说每次要读取内存中数据的时候,最小只能精确到1个字节,不能单独读取某个位上的信息。如果boolean类型的变量的值只占1个位,计算机每次读取到1个字节的信息,里面会包含8个boolean变量的值

boolean 类型的总结:
  1. boolean 类型被编译成 int 类型来使用,占 4 个 byte (字节)。
  2. boolean 数组被编译成 byte 数组类型,每个 boolean 数组成员占 1 个 byte (字节)。
  3. 在 Java 虚拟机里,1 表示 true ,0 表示 false 。
  4. 这只是 Oracle Java 虚拟机的建议。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/943856.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号