黑马程序员技术交流社区
标题:
关于类型提升的问题
[打印本页]
作者:
梁珍珍
时间:
2013-7-19 00:39
标题:
关于类型提升的问题
以下代码哪个是正确的?为什么?
*
* a. byte b = 1 + 1;
* b. byte b = 1; b = b + 1;
* c. byte b = 1; b = b += 1;
* d. byte b = 1; b = ++b;
作者:
张云杰
时间:
2013-7-19 00:56
byte b = 1 + 1; //可以 两个int 的加减, 隐式转换
byte b = 1; b = b+1; // 不可以 byte 与int 相加, 最后赋值给 byte , 最后类型应该是被提升成int 需要强转..
byte b = 1; b = b+=1; // 可以 b+=1; 自动做了转换 是byte 类型;
byte b = 1; b = ++b; // 可以 与上面b+=1 一样
作者:
王峰230321
时间:
2013-7-19 07:57
可能是我理解的有问题吧- - ,
* a. byte b = 1 + 1; 1+1的结果是int。 =左边是byte 这个。 。 能行吗。?
* b. byte b = 1; b = b + 1; 这个肯定不对了, , 道理一样, =右边b+1 b自动提升成了int 但是返回去 回不去了
* c. byte b = 1; b = b += 1; 这个应该没问题 因为是一次运算 直接就得到结果了,
* d. byte b = 1; b = ++b; 这个不太懂 。 感觉应该不行吧, ? ++b 这个 是什么意思 自增吗。 ? C语言里 行。 但是JAVA里 不是b++ 吗?
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2