Java中类型转换的特例

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

先看一下下面的语句那些是非法的。

byte b1=2;

byte b2=1+1;

byte b3=b1+1;

byte b4=b1++;

int i1=Integer.MAX_VALUE+1; //Integer.MAX_VALUE=2147483647

int i2=2147483648;

把byte改为char和short几乎是一样的。

因为整数字面常量是int型的,也就是1和2都是int型的

在赋值语句中直接把一个int型赋给byte肯定是不行的。

int i=1;

byte b=i;

是编译不过的,因为隐性类型转换不答应,改为下面的就可以了

int i=1;

byte b=(byte)i;

隐性转换一般都是放宽转换(如byte到int,String到Object)

但是却有一个例外就是,在赋值转换中,

隐性转换也包含了缩窄基本转换。

就是从int到byte,char,short的转换:

比如:

byte b=1;//合法

byte b=128; //非法

右边必须为int型字面常量,而且值必须能被左边类型表示

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航