public class Test{
public static void main(String[]args)
{
byte b1=50,b2=12;
byte b3=b1-b2;
short s1=20,s2=12;
short s3=s1-s2;
System.out.print(s3);
System.out.print(b3);
}
}
帮我分析上面的原因!谢谢!
public static void main(String[]args)
{
byte b1=50,b2=12;
byte b3=b1-b2;
short s1=20,s2=12;
short s3=s1-s2;
System.out.print(s3);
System.out.print(b3);
}
}
帮我分析上面的原因!谢谢!
解决方案 »
- String s1 = new String("abc");String s2 = new String("abc");产生了几个对象
- 类型不匹配错误。利用Java反射技术将查询结果封装为对象
- 请问java中包的问题
- 请教各位如何用jmagick实现裁减图片?
- "水与争锋"兄弟,请进来解答问题,顺便接分。谢谢了,还是有关字符集与编码的问题,对你是小菜一碟的问题
- [求助]请问英文资料的找法问题
- 关于JDBC的基础问题,请教高手!
- 急...javaScript问题
- 数组赋值问题
- 今天面试遇到一道逻辑题 不会 求助
- 问问正则表达式
- 面试 abcd1234efgh 怎样转变成 efgh5678dcba 代码最短
你得造型啊。
byte b3=(byte) (b1-b2);
short s1=20,s2=12;
short s3=(short) (s1-s2);
System.out.println(s3);
System.out.println(b3);
所有字面是整数的都是int型,所以加减后还是int型,当转型向范围小转换时,编译器就会报错。
所以必须在加减后强制类型转换, 如:byte b3 = (byte)(b1-b2);
2.一个小的类型赋给一个大类型时要强制转换,以通知编译器,你对强转的后果负责.
数据转型只能向字节较长的类型转
b3=b1-b2即为int向byte的转换,需要强制转换(byte)