byte 只有两个字节。。也就是 -127 ,127之间的数字,ASCII中的字符。否则出错。
解决方案 »
- 遇到的java基础问题,非常怪异
- JAVA类里的属性为什么要求是私有的
- 多线程的最大好处是快,那么如果操作系统不是时间片轮的方式呢?
- jdbc直连sqlserver问题~~!!
- 在网页中不能显示Applet程序这是为什么
- 简单问题,进来就得分!
- Layout问题?
- ***捡分小问题,关于双击事件的实现问题,各位大侠,帮帮忙!
- 都说《Tinking in Java》翻译的很烂,那《Java核心技术》呢?
- Java反射通过setAccessible(true)真的改变了final属性值么?
- 初学者的提问!请给予详细且易懂的回复!!!
- java的不可思议事件 大家来看看 真的奇怪至极 无法现象!!!
s = (byte)(s + 1);
应该是: s = (byte)(s + 1);
原因是:对主数据类型执行任何算术或按位运算,只要它们“比int小”(如:byte),那么在正式执行运算之前,那些值会自动转换成int。这样一来,最终生成的值就是int类型。所以只要把一个值赋回较小的类型,就必须使用强制类型转换。
至于为什么+=可以编译通过,估计是编译器在没有处理转换为int的操作。