short类型的变量为什么不能直接使用加法呢? short s1=1;s1=(short)(s1+1);System.out.println(s1);对short的变量+ - * / 都是先作int型来计算的,因此要强制转化 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参加java运算的全部都应该是int以上。s1+=1会做自动类型转换。 根据各位楼上兄弟的看法,我理解是因为java首先将s1+1这个运算中的s1转换成了int,然后做加法,但是加法的结果无法默认转换成为short,是这样的吗? +运算至少是int型的,所以s1 = s1 + 1 不行。而s1+=1相当于s1=(short)(s1+1);所以能执行 你的理解不对,是这样的:1、short s1 = 1;说明s1的类型是short。2、s1 + 1;对s1进行+ 、- 、*、 / 运算时,JAVA会自动把结果提升到int型(对byte、char运算都有这种情况)。3、s1 = s1 + 1;你把个int型赋值给一个short行当然编译错误了!!4、s1+=1;这个运算的实际表示应该是s1=(short)(s1+1),就是把s1 + 1的结果强制转换为short型。 关于read方法怎么样读取? 在java中如何获得字符串中重复字符的个数 SWT的GC画图问题 请高手帮我瞧瞧 急急急 在线等 java中的线裎 用javamail接收邮件的错误,大家看看。 【jFresH_MaN】100分问一个非常基础的问题,大家踊跃回答哦 关于JBUILDER的编辑环境的小问题 分却是100哦 Java里面什么时候用到多线程编程,举个实际的列子,不要给出书上的列子!!! 如何在一个jpanel里显示一个带下划线的字符 关于日期格式化的问题.....
1、short s1 = 1;说明s1的类型是short。2、s1 + 1;对s1进行+ 、- 、*、 / 运算时,JAVA会自动把结果提升到int型(对byte、char运算都有这种情况)。3、s1 = s1 + 1;你把个int型赋值给一个short行当然编译错误了!!4、s1+=1;这个运算的实际表示应该是s1=(short)(s1+1),就是把s1 + 1的结果强制转换为short型。