学习笔记十三:
基本数据类型转换:
自动类型转换--当java程序在进行赋值或运算时,精度小的类型自动转换为精度大的数据类型,这个就是自动类型转换
数据类型按精度大小排序为:
char<int<long<float<double
byte<short<int<long<float<double
如:
int = 'a'(ok,char->int,最后显示97)
double d1 = 89(ok,int->double,最后显示89.0)
*自动类型转换细节:
1.有多种类型的数据混合运算时,系统首先自动将所有数据转换成容量最大的那种数据类型,然后再进行计算。(如float d1 = 1 + 1.1会报错,是因为1.1是double类型(1.1f才是float类型))
2.当我们把精度(容量)大的数据类型赋值给精度(容量)小的数据类型时,就会报错,反之就会进行自动类型转换。(如int n1 = 1.1会报错 )
*3.(byte,short)和char之间不会相互自动转换(重点,如byte b1 = 10 char c1 = b1会报错)
*4.byte,short,char他们三者可以计算,在计算时它们会首先转换为int类型
(如byte b2 = 1;byte b3 = 2;short s1 = 1;此时short s2 = b2 + s1会报错,要用int s2 = b2 + s1(同类型相加也是如此,如两个byte相加))
5.boolean类型不参与转换
6.自动提升原则:表达式结果的类型自动提升为操作数最大的类型
如:byte b4 = 1;short s3 = 100;int num200 = 1;float num300 = 1.1f;
则b4 + s3 + num200 + num300为float类型(注意:float的精度大于int和long,无关乎字节大小)