Java 中的类型转换

1.隐式类型转换
代码不需要经过任何处理,在代码编译时,编译器会自动处理。
特点:数据类型小的转换为数据类型大的时会自动进行。

int a = 100;
long b = 10L;
b = a; // a和b都是整型,a的范围小,b的范围大,将a赋值给b时,编译器会自动将a整型提升为Long类型,然后赋值
a = b; // 编译报错,long的范围比int的范围大,会数据丢失,不安全

//Java中对于字面值的直接赋值是允许的,前提是 没有超过表示范围,否则,就会检查!
byte c = 257;//编译错误,257超过了byte的数据范围,有数据丢失
byte c1 = 127;//OK,127没有超过byte的范围,编译器会隐式将100转化为byte类型

2.强制类型转换
代码需要经过一定的格式化处理,不能自动完成。
特点:数据类型大的转换为数据类型小的。

//强制类型转换
boolean flag = true;
a = (int)flag;//编译失败

int d = 10;
long d1 = 100L;
d1 = d;//隐式转换
d = (int)d1;//强转

byte b2 = (byte)257;//257默认为int,超过了byte的范围,需要强转,否则报错

3.注意事项
(1).不同数字类型的变量之间赋值,表示范围更小的类型能隐式转换为表示范围较大的类型
(2).如果把范围大的类型赋值给范围小的类型时,需要强制类型转换,但是可能会精度丢失
(3).Java中对于字面常量的直接赋值是允许的,前提是没有超过表示范围,否则,就会检查!
(4).boolean类型不能和任何类型转换

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值