首页 > 编程语言 > 详细

【Java基础】类型转换

时间:2020-06-18 19:57:57      阅读:49      评论:0      收藏:0      [点我收藏+]
 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 }

技术分享图片

 

【Java基础】类型转换

原文:https://www.cnblogs.com/yook/p/13159436.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!