解决方案 »

  1.   

    在java语言中
    int 可以自动转成byte short char类型的
    但是是有限制的:-128   ~   127
    是可以自动转换的,编译没有异常。
    但是:
    byte i=100+1;//这里是正确的。应为101没有超出范围
    byte j=i+1;//Error编译时异常,因为编译器在编译阶段会检查类型,检查到i+1是int型的
    可能你会问了为什么下面在范围之内为什么会错了呢?
    编译器的原因。它只会傻傻的检查。还有给楼主加点其他的吧:
    java中的扩展运算符:+= 、*=、 ++、 --等一些扩展运算符运算的时候是不会改变
    运算类型的。
    你可以试试。
    还有什么不明白的在问。
    半夜回帖也不容易的。
      

  2.   

    不对呀 你看看这个“java中的扩展运算符:+= 、*=、 ++、 --等一些扩展运算符运算的时候是不会改变”
    很显然这句话不对
      

  3.   

    这里是 CSDN 不是百度,请不要引用百度的图片 OK?我们看不到!请把图片上传到你 CSDN 的空间相册中,然后再把图片放上来!
      

  4.   

    这样肯定是个错误,java不知道你的int里的值是否能不丢失信息的装入char.
    这在C语言里没有问题,但是绝对有安全隐患。java则修正了这个问题。
      

  5.   

    下一句,编译器会检查而保证不会溢出,如果你那个常数值超出了char的范围,编译器绝对会报错的。
      

  6.   


    int 可以自动转成byte short char类型的??????
      

  7.   

    如果常数表数(编译器能够判定范围)在类型的取值范围之内是可以隐转的,但是表数为变量(编译器无法判定其范围)转换就必须考虑到强转问题,while,for这两种循环也有比较类似的特性,常数编译器可以判定,但变量参与进来编译器则要按照类型转换来进行了