JavaSE基础语法 - 数据转换
JavaSE基础语法 - 数据转换
记录自己的学习之路,2025年7月21日,周一,早,天气阴晴。数据转换学习。
转换等级
从低级到高级(根据容量来看)
低 ------------------------------------> 高
byte,short,char—> int —> long—> float —> double
- 不能对boolean类型进行类型转换。
- 不能把对象类型转换成不相关类的对象。
- 在把容量大的类型转换为容量小的类型时必须使用强制类型转换。
示例:
由高到低转换
int i =128;
byte b = (byte)i;//,由高到低,强制转换。byte最多去到127,内存溢出,显示结果不是128
byte b = i;//由高到低,不强制转换会报错
由低到高转换
byte b = 17;
int i = b;//由低到高,无需强制转换
浮点数转换成整数
(int)23.7 == 23;//舍弃小数位
(int)-45.67f == -45;//舍弃小数位
内存溢出
操作比较大的数时,要留意是否溢出,尤其是整数操作时
public static void main(String[] args) {
int money = 1000000000; //10亿
int years = 20;
int total = money*years; //返回的是负数
long total1 = money*years; //返回的仍然是负数。默认是int,因此结果会转成int值,再转成long。但是已经发生了数据丢失
long total2 = money*((long)years); //先将一个因子变成long,整个表达式发生提升。全部用long来计算。
System.out.println(total);
System.out.println(total1);
System.out.println(total2);
}
其他特性
-
二进制整数
int a = 0b0101;//5 -
下划线分隔符
int b = 1_234_5678;//12345678

浙公网安备 33010602011771号