Java类型转换笔记
关于基本数据类型之间的互相转换:转换规则
-
1.八种基本数据类型当中除布尔类型之外剩下的7中类型之间都可以互相转换
-
2.小容量向大容量转换,称为自动类型转换,容量从小到大排序:
byte < short < int < long < float < double
char <
注:
任何浮点类型不管占用多少个字节,都比整数型容量大。
char和short可表示的种类数量相同,当时char可以取更大的正整数。【char和short的容量大小是同级的】 -
3.大容量转换成小容量,叫做强制类型转换,需要加强制类型转换符,程序才能编译通过,但是在运行阶段可能会损失精度,所以谨慎使用。
-
4.当整数字面值没有超过byte,short,char的取值范围,可以赋值给byte,short,char类型的变量
-
5.byte,short,char混合运算的时候,各自先转换成int类型再做运算。
-
6.多种数据类型混合运算,先转换成容量最大的那种类型再做运算。
注意通过:
byte b = 3;可以编译通过,3没有超过byte类型取值范围 int i=10;
byte b =i/3;编译报错,编译器只检查语法,不会运算i / 3。public class DataTypeTest08{ public static void main(String[] args){ double dd = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0 System.out.println(dd); System.out.println("---------------------------------------"); dd = 10.0 / 3;//int类型的3先转换成double类型在计算,多种数据类型数据运算时,全部转换成大容量的类型在计算 System.out.println(dd); // 编译报错,因为1000已经超出范围了。 //byte b1 = 1000; // 可以 byte b2 = 20;//20虽然是int类型,但是20没有超过byte的取值范围 // 可以 short s = 1000;//1000没有超过short的取值范围 // 可以 int c = 1000;//1000没有超过int的取值范围 // 可以 long d = c;//小容量转换成大容量,属于自动类型转换 // 编译报错 //int e = d;//d属于long类型,大容量转换成小容量,属于强制类型转换,需要强制类型转换符 // 可以 int f = 10 / 3;//int类型的10和3计算后的结果是int类型的3,然后再转换成double的3.0 // 可以 long g = 10;//int类型的10转换long类型的g,属于自动类型转换 // 编译报错 //int h = g / 3;//编译报错,编译器只检查语法,不会运算i / 3。 // 可以 long m = g / 3;//g属于long类型,int类型的3先转成long类型在计算 // 编译报错 //byte x = (byte)g / 3;//分子先把byte类型的g强转换为byte,然后整个运算式全转换为int在计算,得到int结果,还需要强制转换 // 可以 short y = (short)(g / 3);//先把(g/3)转换成long,然后再强转为short类型 // 可以 short i = 10;//10没有超过short类型的取值范围,可以直接赋值 // 可以 byte j = 5;//5没有超过byte类型的取值范围,可以直接赋值 // 编译报错 //short k = i + j;//先把i和j转换成int类型计算,得到int类型的结果,最后还需要进行强转 // 可以 int n = i + j;//int转int,无需操作 // 可以 char cc = 'a'; System.out.println(cc); // a System.out.println((byte)cc); // 97运算式强转成byte // cc 会先自动转换成int类型,再做运算 int o = cc + 100; System.out.println(o); // 197 } }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/94381.html