java一个基础问题

来源:百度知道 编辑:UC知道 时间:2024/03/28 21:00:39
byte b=5;
b=b-2;//会报错,未强制转换

为什么第一句"byte b=5"不会报错??

请教各位大虾

byte 类型是从-128到127所以不会出错
b=b-2会转成int类型
所以要b=(byte)(b-2)这样才可以

你这样它是不会出错误的.

byte a=5;
int b=5-a;

它是可以转换的,但是a的原类型并不是INT型,所以你要把一个int型
复制给一个byte类型,是不行的,因为从一个大位数到一个小位数,会丢失数据,所以,系统一定要让你确认,的两个变量的位数是否一致.
(byte)(b-5),如果从小位数往大位数转换的情况系统才回自动隐式转换.

所有高级语言的赋值语言中一定要标明数据的数据类型,像java就提供了四种基本数据类型:整数型:byte,short,int,long;符点型:float,double;字符型:char;逻辑型:boolean。

2是INT