一个简单却容易忽略的小坑(基本数据类型转换)

基本数据类型转换相信大家都能够信手拈来,讲起来也是口若悬河,滔滔不绝。

那么,请看:

byte number1 = 30;
byte number2 = 10;
byte number3 = number1 + number2;
System.out.println(number3);


看起来很和谐的一段代码,对于刚入Java的新手来说简直不要太喜欢,简单易懂。
其实,已经错了,当两个byte类型的数据相加的时候返回值真的是一个byte类型的值么?
讲到这边要还是认为是byte类型的,可以点击右上角的 × 然后转行吧,Java可能不适合你,哈哈,开玩笑的!!
当然,不信你可以去ideal敲一下试试,具体返回值是啥一试便知道,我就不说了。
今天要讲的是为啥会这样:
其实也很简单,当两个byte类型的变量开始运算的时候,系统会直接先将其转化成int类型再做运算,所以输出来的结果可想而知是一个int类型的返回值。
但有些人说,我是杠精,我就想要返回值是byte咋搞?
简单啊,强转呗!
byte number3 =(byte) (number1 + number2);
先运算括号中的加法,结果强转为byte类型。。。。。。

废话扯了这么多,真理就一句话,哈哈,喝水去了,感觉有辣么一丝丝收货的,别忘记点个赞,拜拜!!
 
posted @ 2020-03-09 20:03  Java园丁  阅读(157)  评论(0编辑  收藏  举报