黑马程序员技术交流社区
标题:
java中有关byte s+=1的问题
[打印本页]
作者:
wangyeake
时间:
2016-6-23 10:19
标题:
java中有关byte s+=1的问题
java中有关byte s+=1的问题
byte s+=1;
是 byte s=byte(s+1);
还是 byte s=byte s +byte 1; ??
作者:
下届海贼王
时间:
2016-6-23 17:59
byte s=byte(s+1);
作者:
善良的死神达乐
时间:
2016-6-23 19:00
byte s += 1;
这个 += 号是java底层会给你做一个运算,就是byte (s + 1)
但是如果是byte s + byte 1结果就不对了,因为它是你自己手动给出的,java底层不管的。
作者:
懂得珍惜
时间:
2016-6-23 19:10
byte s=byte(s+1);
你记住扩展运算符有隐藏强制转换的作用就行了。
作者:
天之骄子no1
时间:
2016-6-23 20:00
byte类型的变量在参与运算过程中,会自动转化成int类型的参与运算,所以,这道题应该是byte s=(byte)(s+1)
作者:
天之骄子no1
时间:
2016-6-23 20:02
byte类型的变量在参与运算过程中,会自动转化成int类型的参与运算,所以,这道题应该是byte s=(byte)(s+1)
作者:
天之骄子no1
时间:
2016-6-23 20:03
byte类型的变量在参与运算过程中,会自动转化成int类型的参与运算,所以,这道题应该是byte s=(byte)(s+1)
作者:
张雨
时间:
2016-6-23 20:24
个人认为s先提升为int和1相加 之后在强转为byte
作者:
940752944
时间:
2016-6-23 20:27
是,byte = byte(s+1),+=这种运算在底层有一个优化
作者:
L1ub0w3n
时间:
2016-6-23 21:25
运算后是需要什么类型直接在运算式子前加上类型即可。
作者:
孟小垚
时间:
2016-6-23 21:30
我就看看,学习一下
作者:
迅雷
时间:
2016-6-23 22:22
byte s = byte(s+1); (s+1)底层运算的时候会自动强转为byte类型
作者:
Ake丶
时间:
2016-6-23 22:33
下届海贼王 发表于 2016-6-23 17:59
byte s=byte(s+1);
正解!!
作者:
wangyeake
时间:
2016-6-24 17:19
谢谢大家,明白了
作者:
syinys7
时间:
2016-6-24 17:49
扩展运算符+= 是左右相运算后,将结果再次赋值给左边
byte s+=1;
就是 byte s =byte((int)s+1); 运算时,s会先隐性转换为int类型与1相加,然后再将结果强转为byte赋值给s
作者:
15820030540
时间:
2016-6-24 18:44
这类问题其实是java底层实现的,中间不做转换,有些类似于">>"位移,要类似的话 还是byte s=byte(s+1);这个
作者:
lifeiwangyue
时间:
2016-6-24 20:45
来学习下 各路解答很对啊
作者:
suming
时间:
2016-6-24 23:28
我来这里 学习
作者:
星空@3
时间:
2016-6-25 00:11
两个都不是, 你这样直接写byte s+=1; 编译不会通过吧
作者:
山水云梦
时间:
2016-6-25 00:26
byte(s+1){:2_38:}
作者:
kobe240888
时间:
2016-6-26 22:22
byte s=byte(s+1);
作者:
Insomnia!
时间:
2016-6-28 17:24
byte s = (byte)(s+1)
作者:
天安门前扫地僧
时间:
2016-6-28 18:23
学习一下
作者:
caesar_QMwS4
时间:
2016-6-29 09:58
我觉得是上一个吧!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2