Java中boolean类型占几个字节,你知道吗?
背景
最近在复盘Java基础知识,看到基础数据类型这一章节,有一张图片是这样的。
比较好奇,为什么其他类型都有字节标识,唯独boolean没有,不是只占用1bit ~ 1位
的吗 ?
找答案
出处1 ~《疯狂Java讲义(3版)》
一个boolean类型占用8位 = 1字节
出处2 ~ Java官网
1 原始类型
Primitive Data Types
boolean: The boolean data type has only two possible values: true and false. Use this data type for simple flags that track true/false conditions. This data type represents one bit of information, but its “size” isn’t something that’s precisely defined.
解释一下:
布尔数据类型只有两个可能的值:true和false。 将此数据类型用于跟踪真/假条件的简单标志。 此数据类型表示一位信息,但其“大小”不是精确定义的内容。
2 jdk 布尔类型
地址2:jdk specs文档
我对比了jdk8, jdk11 和 jdk12 对于boolean类型的说明是完全一样的,故只贴出jdk12的图
翻译一下:
虽然Java虚拟机定义了一个
boolean
类型,但它只为它提供了非常有限的支持。没有Java虚拟机指令专门用于对boolean
值的操作。相反,Java编程语言中对boolean
值进行操作的表达式被编译为使用Java虚拟机int
数据类型的值。Java虚拟机直接支持
boolean
数组。它的newarray指令可以创建boolean
数组。使用byte
数组指令baload和bastore访问和修改类型为boolean
的数组。在Oracle的Java虚拟机实现中,Java编程语言中的
boolean
数组被编码为Java虚拟机byte
数组,每个布尔元素使用8位。Java虚拟机使用1表示
boolean
数组组件的true,0表示false。其中Java编程语言布尔值由编译器映射到Java虚拟机类型int的值,编译器必须使用相同的编码。
结论
boolean类型
被编译为int类型,等于是说JVM里占用字节和int完全一样,int是4个字节,于是boolean也是4字节
- boolean
数组
在Oracle的JVM中,编码为byte数组,每个boolean元素占用8位
=1字节
- (待考证)boolean数组在非Oracle JVM里面,占用字节数
也许不是1字节
Java中boolean类型占几个字节,你知道吗?相关推荐
- java中boolean类型占几个字节
java的基本数据类型中,boolean只有两种状态,默认值为false.取值范围是{true,false},理论上占1bit,实际上: 1.单个的boolean 类型变量在编译的时候是使用的int ...
- java中double类型占几个字节_java中各种数据类型占用字节数
1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ...
- java中double类型占几个字节_面试官:Java 中有几种基本数据类型是什么?各自占用多少字节?...
认识基本数据类型 在学习基本数据类型之前,我们先认识一下这两个单词:1.bit --位:位是计算机中存储数据的最小单位,指二进制数中的一个位数,其值为"0"或"1&quo ...
- 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知...
来自:程序员乔戈里 ---------------第二天-------------- 什么是boolean类型,根据官方文档的描述[1]: boolean: The boolean data type ...
- Java中boolean类型占用多少个字节
原文地址:http://www.cnblogs.com/wangtianze/p/6690665.html?utm_source=itdadao&utm_medium=referral --- ...
- Java中char类型占几个字节?
要想弄清楚char占用几个字节,就必须了解Unicode编码机制. 早在Unicode诞生之前,就已经有很多字符集,如美国的ASCII.表示西欧语言的ISO 8859-1.中国的GB18030等. 但 ...
- java中float类型占4个字节,long类型占8个字节,为什么long类型能自动转换成float类型,且float类型为什么表示的范围比long类型大
作为常识我们都知道,float型在内存中占用的是4个字节,而long型占用8个字节.单从字节数来看,long型是大于float型的.但实际上,float表示的范围却是比long要大的 float类型的 ...
- 2019.04.08—Java 中字母汉字占几个字节
今天在做回顾的时候看到的问题: 为什么两个运行的结果不一样呢? 1.弄清java中的字节与字符 问题 在java中,一个字符等于多少字节?或者更详细的问:在java中,一个英文字符等于多少字节?一个中 ...
- c语言中布尔类型占几个字节,JAVA基本数据类型所占字节数是多少?
byte 1字节 short 2字节 int 4字节 long 8字节 char 2字节(C语言中是1字节)可以存储一个汉字 float 4字节 doub ...
- Java中int为什么占四个字节?
简单了解计算机为什么要采用二进制表示信息: 因为计算机作为一种电子计算机工具,是由大量的电子器件组成的,在这些电子器件中,电路的通断,电位的高低,用两个数字符号"1"和" ...
最新文章
- 【ThinkingInC++】61、非成员运算符
- 如何进行嵌入式系统的学习?
- 3秒取暖,超高颜值!冬日必备的大宇取暖器
- 100*100的 canvas 占多少内存?
- 万圣节魅惑手绘插画素材,没想到你是这样的可爱!
- 如何在 Mac 上的“地图”中自定地图视图?
- C++ using关键字作用总结
- 《图解算法》学习笔记之广度优先搜索(breadth-first search, BFS)
- html静态页面如何复用,一种前端页面模板复用的方法与流程
- android音标,安卓系统如何正确显示音标
- mysql 多数据源配置文件_Spring+MyBatis多数据源配置实现
- discuz php单页,Discuz! X2 自定义单页面最简单方法
- Corona建筑表现作品:岩石上的住宅
- 基于三维实景建模与CIM的数字孪生城市建设
- 毕业论文找文献是个问题,我直接用python把全网文献爬了一遍,这波就很舒服
- 2021夏魔训作业 第三天 2021-07-28
- android中tabview去掉下划线,TabWidget去除底部下划线
- Howlerjs 音频播放插件
- 浙江教师计算机职称考试,浙江今年不再组织职称外语统一考试 计算机照考
- 【Android】错误Cyclic inheritance involving(循环继承问题)