黑马程序员技术交流社区

标题: 自动类型转换 [打印本页]

作者: 阿弥陀佛么么哒    时间: 2016-8-8 08:56
标题: 自动类型转换
1.  {                                
        byte b=4;
           b=3+7;
       System.out.print(b);
    }
输出:10
2.{
     byte b=4;
     byte b1=3;
     byte b2=7;
     b=b1+b2;
  System.out.print(b);  
    }
输出:报错 可能会损失精度

解析:byte b=4  中,int类型的4为什么会赋值给b呢?b不是byte类型吗?原因是编译器在编译的时候,它会判断右边的数值是不是在字节这个范围内,如果在,把int类型的值做一次强转再赋给b;而2中的b1 b2是变量,值的范围不确定,编译时不能做检察,检察不了就会报错。(如问题分析有误,请大家不吝指证哦)
作者: 敲敲乐z    时间: 2016-8-8 22:05
我这里记的是JAVA有常量优化机制!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2