类型转换

本文详细介绍了Java中不同类型数据之间的转换规则,包括由低到高的转换顺序,以及转换过程中的注意事项,如不能对布尔值转换,不能非法转换对象类型等。特别强调了在转换时可能出现的精度损失和内存溢出问题,并通过实例展示了整数转换时可能引发的溢出现象。此外,还讨论了字符与数字之间的相互转换以及大数值计算时避免溢出的策略。
摘要由CSDN通过智能技术生成

类型转换

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

由低到高

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

/* 注意点:
* 1.不能对布尔值进行转换
* 2.不能把对象类型转换为不相干的类型
* 3.在把高容量转换到低容量的时候,强制转换
* 4.转换的时候可能存在内存溢出,或者精度问题
* */

精度问题:

System.out.println((int)21.8);//21
System.out.println((int)-45.27f);//-45

内存溢出:

int i = 128;
byte b = (byte)i; //内存溢出

System.out.println(i); //128
System.out.println(b); //-128

所有的字符本质还是数字:

char c = 'a';//97
int i2 = c + 1;
System.out.println(c);//a
System.out.println(i2);//98
System.out.println((char)i2);//b

操作比较大的数的时候,注意溢出问题

//操作比较大的数的时候,注意溢出问题
//JDK7新特性,数字之间可以用下划线分割,但是不会被输出
int money = 10_0000_0000;
int years = 30;
int total = money * years;
System.out.println(total);//-64771072 溢出
long total1 = money * years;
System.out.println(total);//-64771072 转换之前,计算已经完成
long total2 = money * (long)years; //先把一个数转化为long
System.out.println(total2);//30000000000
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值