JAVA——类型转换

本文详细介绍了Java中的数据类型转换,包括强制转换和自动转换,以及转换过程中可能出现的溢出问题。在强制转换中,需要注意类型优先级和转换限制,例如不能直接将高优先级类型转换为不兼容的低优先级类型。自动转换则是低优先级类型向高优先级类型转换。同时,文章讨论了byte类型的溢出现象,并展示了字符串与数字之间的转换方法。在处理大型数值时,要注意防止整数溢出,适当使用long类型避免计算错误。
摘要由CSDN通过智能技术生成

类型优先级

JAVA类型转换

运算中不同类型的数据先转化为同一类型,然后进行运算。

即类型升级,具体过程如下:

JAVA类型升级

注意事项:

  1. 不能对布尔值进行转换
  2. 不能把对象类型转换为不相干的类型

强制转换

本质为高优先级–低优先级

// 强制转换 高优先级--低优先级
long n1 = 1000;
float n2 = n1;
int n3 = 1;
int n5 = 129;   
// byte n4 = n3;  //  报错
byte n4 = (byte)n3;
byte n6 = (byte)n5;
System.out.println(n4);  //  1
System.out.println(n6);  //  -127

其中,对于byte类型转换,当n5,n6去不同值时:

n5:n6 => 127:127, 128:-128, 129:-127, 2816:0, 3072:0 … => 发现每256一个轮回,取值为[-128~127],递增。比如 (byte)3072 的值为0,(byte)20733 的值为1.原因:内存溢出,byte类型最大值为128。所以对其他数只取后8位。

System.out.println((int)66.66);   //  66
System.out.println((int)-66.66f);  //  -66
short n11 = 33;
// char n12 = n11;  //  报错

char n9 = 'a';
char n13 = 'b';
// short n10 = n9;  //  报错
// short n10 = n9+1;  // 报错  
n13 += 1;  //  不会报错
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

TurkeyMan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值