基本数据类型的介绍

八种基本数据类型

整型:byte、short、int、long

浮点型:float、double

字符型:char

布尔型:boolean


1、各种基本数据类型

1.1、byte

占一个字节,有8位,范围是-128,127;

计算机中,数据传输大多是以“位”(bit,比特)为单位,一位就代表一个0或1(二进制),每8个位 (bit)组成一个字节(Byte),所以,1个字节=8位0101代码,共8位0101代码组成 十六进制有0 1 2 3 4 5 6 7 8 9 A B C D E F ,它的范围是0~15 每4位0101代码可以表示一个十六进制的数字,因为4位表示的最小值是 0000,最大值1111 ,刚好范围 是0~15 所以8位0101代码,刚好可以使用2位十六进制的数字来表示 ,

1.2、short

short数据类型是16位有符号,占一个字节。 其范围是-32768至32767(或-2 15 15 - 1)。没有short字面量。但是,我们可以将任何位于short(-32768到32767)范围内的int字面量分配给一个短变量。

1.3、int

32位、长度是4字节, 范围:负2的31次方~2的31次方减1

byte、short、char 的类型提升,会先转换成int类型

1.4、long

64位、长度是8字节 范围:负2的63次方~2的63次方减1

1.5、float

float是32位, 1符号位+8指数位+23尾数位,float的精度为7位左右有效数字

float的最大值大于long的最大值

单精度浮点数float 占4字节32位,其二进制形式表示方法如下:最高 位为符号位,接下来 8 位为指数位,低 23 位为尾数位,用来表示小数 部分。

long类型最大值: 2^63-1 float类型非最大值: 1 * (1+0) * 2^(254-127) = 1 * 1 * 2^127 = 2^127 float类型可以取到 2^127 远大于 long类型最大值 2^63-1

1.6、double

double是64位 1符号位+11指数位+52尾数位 ,double的精度为16位左右有效数字

Java中的浮点数类型float和double不能够进行精确运算,虽然大多数情况下是运行是正常的,但是偶尔 会出现如上所示的问题。 这个问题其实不是java语言的bug,而是因为计算机存储数据是二进制的,而浮点数实际上只是个近似 值,所以从二进制转化为十进制浮点数时,精度容易丢失,导致精度下降。

可以使用BigDecimal类来解决这个问题

1.7、char

长度为两个字节,16位

每一种字符编码都有一个与之对应字符编码表

1.8、boolean

布尔类型占1个字节(8位),它的的值,必须是true或者false,在JVM中会转换为1(true)或者 0(false)

2、基本数据类型之间的转换

基本数据类型之间遵循自动类型提升的转换,转换的原理

byte、short、char—>int—>long—>float—>double

从低位类型到高位类型自动转换;从高位类型到低位类型需要强制类型转换:

(1)布尔型和其它基本数据类型之间不能相互转换;
(2)byte型可以转换为short、int、、long、float和double;
(3)short可转换为int、long、float和double;
(4)char可转换为int、long、float和double;
(5)int可转换为long、float和double;
(6)long可转换为float和double;
(7)float可转换为double;

算术运算的基本数据类型的转换

 1 基本就是先转换为高位数据类型,再参加运算,结果也是最高位的数据类型;

  2 byte short char运算会转换为Int;

(1)如操作数之一为double,则另一个操作数先被转化为double,再参与算术运算。

(2)如两操作数均不为double、float或long,则两操作数先被转换为int,再参与运算。

特殊:(1)如采用+=、*=等缩略形式的运算符,系统会自动强制将运算结果转换为目标变量的类型。

(2) 当运算符为自动递增运算符(++)或自动递减运算符(– –)时,如果操作数为byte,short或char类型不发生改变;

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值