Java基础语法(二)
基础语法(二)
数据类型
Java的数据类型分为

类型转换
类型转换分为强制转换和自动转换
运算时,根据字节大小(容量)由低到高为:
byte、short、char→int→long→float→double
| 强制转换 | (类型)变量名 | 高→低 |
|---|---|---|
| 自动转换 | 无 | 低→高 |
注意点:
1.不能对布尔值进行转换
2.不能把对象类型转换为不相干的类型
3.在把高容量转换到低容量的时候,强制转换
char a='A';
int b=a+1;
System.out.println(b);//自动转换
System.out.println((char)b);//强制转换
4.转换的时候可能存在内存溢出,或者精度问题
int x=128;
byte y=(byte)x;
System.out.println(y);//内存溢出
输出结果为-128,byte的取值范围在-128~127,内存溢出
System.out.println((int)23.1);
System.out.println((int)-145.62F);//精度问题
输出结果为23 -145,出现精度问题
补充
操作比较大的数的时候,注意溢出问题
int money=10_0000_0000;
int years=20;
int total=money*years;
System.out.println(total);//输出-1474836480,计算时溢出
long total1=money*years;
System.out.println(total1);//输出仍是-1474836480,默认是int,转换之前已经出现问题
//先把一个数转换成long类型;先转换,后运算
long total2=money*((long)years);
System.out.println(total2);//转换years,成功输出20000000000
long total3=((long)money)*years;
System.out.println(total3);//转换money,成功输出20000000000

浙公网安备 33010602011771号