【Java基础】类型转换

 1 public class Demo2 {
 2     public static void main(String[] args) {
 3         //byte/short/char->int->long->float->double
 4         // 低->高
 5         //运算中,不同类型的数据要先转换成同一类型,再进行运算。
 6         int i = 128;
 7         byte b = (byte)i;  //存在内存溢出的问题  高->低
 8         double d = i;// 低->高
 9         System.out.println(i);
10         System.out.println(b);
11 
12         //强制转换  (类型)变量名  高->低
13         //自动转换   低->高
14 
15         /*
16         注意点:
17         1.不能对布尔类型进行转换
18         2.不能把对象类型转换成不相干的类型
19         3.在把高容量转换到低容量时,强制类型转换
20             低容量到高容量,自动类型转换
21         4.转换的时候可能存在内存溢出或者精度问题。
22          */
23     }
24 }

注意事项:

操作比较大的数字的时候,要注意溢出问题

1 public class Demo2 {
2     public static void main(String[] args) {
3         int money = 10_0000_0000;
4         int year = 20;
5         int money2 = money * year;
6         System.out.println(money2);
7     }
8 }

 

 这里计算后的结果超出的int的存储范围,计算出错

1 public class Demo2 {
2     public static void main(String[] args) {
3         int money = 10_0000_0000;
4         int year = 20;
5         long money2 = money * year;
6         System.out.println(money2);
7 
8     }
9 }

就算计算后的结果存储为long也没有用,因为是先计算后转换,在计算时已经出错了,转换过后的也是错误的,所以,应该在计算前进行转换。

1 public class Demo2 {
2     public static void main(String[] args) {
3         int money = 10_0000_0000;
4         int year = 20;
5         long money2 = money * (long)year;
6         System.out.println(money2);
7     }
8 }

 

posted @ 2020-06-18 19:37  yooK6  阅读(145)  评论(0)    收藏  举报