java八大基本数据类型定义及其转换规则

byte:8位,最大存储数据量是255,存放的数据范围是-128~127之间。封装类Byte

short:16位,最大数据存储量是65536,数据范围是-32768~32767之间。封装类Short

int:32位,最大数据存储容量是2的32次方减1,数据范围是负的2的31次方到正的2的31次方减1。 封装类 Integer

long:64位,最大数据存储容量是2的64次方减1,数据范围为负的2的63次方到正的2的63次方减1。 封装类 Long

float:32位,数据范围在3.4e-45~1.4e38,直接赋值时必须在数字后加上f或F。 封装类Float

double:64位,数据范围在4.9e-324~1.8e308,赋值时可以加d或D也可以不加。封装类Double

boolean:只有true和false两个取值。 封装类Boolean

char:16位,存储Unicode码,用单引号赋值。封装类 Character

以上是java的八大基本数据类型,由于平时某些数据类型不总经常使用所以我们再定义或进行赋值于非赋值运算时出现一些问题。

首先是定义基本数据类型

 我们可以看到除了float其余的七个基本数据类型都是可以直接定义的,而float必须再数值后加f,或者进行强制类型的转换

 这是因为我们java默认类型为 int 和double (double 后面的D 加不加没有区别)。

对于byte/short/char 如果没有超出范围 三种数据类型我们javac编译器会自动进行强制类型转换如图一内容(byte)(short) (char) 。(自动进行 所以我们看不到 ,必须再类型的范围之内)

对于long来说,小的数据类型会自动向大的数据类型进行转换 .再int 范围内不加L默认是 int ,加后为long

但是对于float 来说 默认double的范围大于 float 无法进行从大变小的自动类型转换。所以要加上f,或者进行强制类型转换。

那么对于非赋值运算呢?

 我们可以看到 无论 byte short char 三种谁与谁相加结果都是int型

这是因为 byte short char 但是计算之前会自动转换成int

 从以上结果我们能总结出当两个数相加是其中的一个数会转换成另一个数的数据类型,从以上的规律的得出他们的转换关系为

byte/char/short->int->long->float->double

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

总结:

 非赋值运算,自动转换规则 
byte/char/short->int->long->float->double
赋值运算 转换规则 精度大的值不可以
直接付给精度小的值

*强制类型转换可能会损失精度

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值