我是一名希望能进入黑马的学生,从官网上下的JavaEE基础视频 第二天老师讲的这个关于数据类型转换的面试题有点小疑问
* 面试题:看下面的程序是否有问题,如果有问题,请指出并说明理由。
* byte b1 = 3;
* byte b2 = 4;
* byte b3 = b1 + b2;
* 从两方面去回答这个题
* b1和b2是两个变量,变量里面存储的值都是变化的,所以在程序运行中JVM是无法判断里面具体的值
* byte类型的变量在进行运算的时候,会自动类型提升为int类型
这个如果是int a1 = 3;
int a2 = 4;
int a3 = a1 + a2;
这个也是变量同样是在变化的,那么这个程序也是有问题吗?但是我试了一下,这个编译是可以直接通过的,就是可能会损失精度,可以给我透彻解释下吗? |
|