龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

Java中类型转换的特例

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
先看一下下面的语句那些是非法的。 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几乎是一样的。 因为整数字面

  先看一下下面的语句那些是非法的。
  
  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型字面常量,而且值必须能被左边类型表示
  
精彩图集

赞助商链接