java解惑------多重转型(问题)

转型用于将一个数值从一种类型转换到另一种类型,下面的示例程序输出的结果是什么呢?

public class Multicast{
  public static void main(String[] args){
       System.out.println((int)(char)(byte) -1);
  }
}

这个程序从int数值-1开始,然后从int转型为byte,之后转型到char,最后转型到int。第一个转型将数值从32位窄化为8位,第二个转型将数值从8位拓宽为16位,最后一个转型又将数值从16位拓宽回到32位,这个数值最终回到可起点么?运行该程序,就会发现,它打印的是65535。

你可能感兴趣的:(java)