java八大数据类型_java的八大基本数据类型分别是什么?

java的八大基本数据类型分别是:1、整型的byte、short、int、long;2、字符型的char;3、浮点型的float、double;4、布尔型的boolean。

d8b559a672f95d88e32583ef360c42fe.png

自从Java发布以来,基本数据类型就是Java语言的一部分,分别是byte, short, int, long, char, float, double, boolean.

bb1df53a8d1e08caa0ed23ea5ae30e83.png

其中:

整型:byte, short, int, long

字符型:char

浮点型:float, double

布尔型:boolean

一. 整型

Java中整型数据属于有符号数,即第一个bit位为0表示正整数,第一个bit位为1表示负整数。在计算机中负数由补码进行表示,那么补码如何计算呢?

(视频教程推荐:java视频教程)

补码=源码取反 + 1;如:

22,在计算机中的表示为00010110,

-22,取反:11101001,加1:11101010

byte

byte属于Java中的整型,长度为1字节8bit,取值10000000(-128)到 01111111(127),变量初始化默认值为0,包装类Byte

short

short属于Java中的整型,长度为2字节16bit,取值10000000 00000000(-32768)到 01111111 11111111(32767),变量初始化默认值为0,包装类Short

int

int属于Java中的整型,长度为4字节32bit,取值-2^31 (-2,147,483,648)到 2^31-1(2,147,483,647),变量初始化默认值为0,包装类Integer

long

long属于Java中的整型,长度为8字节64bit,取值-2^63 (-9,223,372,036,854,775,808‬)到 2^63-1(9,223,372,036,854,775,8087),变量初始化默认值为0或0L,包装类Long

二. 浮点型

Java中浮点型数据无法由二进制直接表示,而是一种对于实数的近似数据表示法,它遵循IEEE 754标准

float

float属于Java中的浮点型,也叫单精度浮点型,长度为4字节32bit,变量初始化默认值0.0f,包装类Float

1. float结构

包含三部分:符号位、指数位、尾数位符号位(S)指数位(E)尾数位(M)长度1bit8bit23bit

说明0表示正数,1表示负数格式为

856fffd9e012f65dc30c3ea1b85091dd.png,E值范围:(0,255),指数位取值:(

95ef18c45923cfb01e97049eca4e7348.png

d9ef63569a6b587c8b28e5c520d1251c.png形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式

2. float取值

正规形式:

cec4560c7f55ea3e0d733dc34b58a6a4.png

非正规形式:

04f8541f0c0456a19b9730a93e23d54d.png

根据上面公式很容易计算出float的取值范围为:

23511c6aa82e4dceb43e2cbbc6a08c8e.png

(最小值,当符号位S取1,指数位E取255)

787e2dff183da74e53c59c06fd46cc0d.png

(最大值,当符号位S取0,指数位E取255)

能取到其间的近似数据。注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal

double

double属于Java中的浮点型,也叫双精度浮点型,长度为8字节64bit,变量初始化默认值0.0d,包装类Double

1. double结构

包含三部分:符号位、指数位、尾数位符号位(S)指数位(E)尾数位(M)长度1bit11bit52bit

说明0表示正数,1表示负数格式为

e3042e73e6954dcbecd971a658afc58c.png,E值范围:(0,2047),指数位取值:(

ff4ba5c1cbbe1bf86f6d8ff3db155543.png

03f92dbe1feb730905979c966f54d779.png)形式为1.M或0.M。其中当E=0时,取1.M,称为正规形式,当E!= 0时,取0.M,称为非正规形式

2. double取值

正规形式:

807596336b5b8a16acae53e90a277d6e.png

非正规形式:

b1e4b8db4bc4d6950a0eba3012b80530.png

根据上面公式很容易计算出double的取值范围为:

a0c97b478ff4703113fd039caddc585e.png

(最小值,当符号位S取1,指数位E取2047)

2468623b22ec74531a0bf4cc7fe349e4.png

(最大值,当符号位S取0,指数位E取2047)

能取到其间的近似数据。注意:根据指数位和尾数位的取值不同,还有很多特殊情况,如NAN,正无穷,负无穷,但平时基本不会用到,这里不再深入;同时由于是近似值,因此无法表示金额,表示金额建议使用BigDecimal

三. 字符型

char

char属于java中的字符型,占2字节16bit,可以赋值单字符以及整型数值, 变量初始化无默认值,包装类Character。

如:

char a = 'a';

char a = '中';

char a = 12; // 取值范围0~65536,因为char类型在ASCII字符编码中,有对应的数值,可直接做运算,输出字符表中对应的字符

四. 布尔型

boolean在JVM中并没有提供boolean专用的字节码指令,而boolean类型数据在经过编译后在JVM中会通过int类型来表示,此时boolean数据4字节32位,而boolean数组将会被编码成Java虚拟机的byte数组,此时每个boolean数据1字节占8bit.

--Java虚拟机规范

仅有两个值true, false,变量初始化默认值false

更多编程相关知识,请访问:编程教学!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值