1Java 必须要保证数据类型的一致性,如果数据类型不一致将发生类型的转换。
自动类型转换【从小到大自动】
转换规则: byte、short、char-->int-->long-->float-->double
整个表达式中的所有类型,都会自动转换成表达式中最大的类型,结果也是最大的类型
把int类型转换成long类型,从小到大,叫做自动类型转换(自动完成)
把long类型转换成int类型,从大到小,叫做强制类型转换(不会自动完成,必须手动处理)
类型一样才可以互相转
强制类型转换【从大到小强制】可能损失精度
如果砍掉都是0,对数据大小没有影响, 只要砍掉的有1,就会影响数据大小 强制类型long类型转换为byte类型:
long num = 888L;
byte b = (byte)num;//把num强制类型转换成byte类型,砍掉左侧的7个字节的内容
转后类型 变量名称 = (转后类型)转前数字/变量;
但是把int类型的结果数据强制类型转换为short类型(砍掉左侧的2个字节的内容)
小数数字1.5是double类型(占8个字节),不能直接赋值给左侧的int变量(占4个字节)
但是我们把数字1.5强制类型转换成int类型(直接砍掉小数部分)
*/
int i = (int)1.5;
System.out.println(i);
小写字母的ASCII码值比对应的大写字母多32 97 --> 'a'65 --> 'A'
把int类型的结果强制类型转换为char类型 98 --> 'b'
System.out.println((char)(ch + 1));//b