1、a+b结果为int,编译器编译时能够发现将结果赋给表数范围小的byte,所以需强制转换为,c=(byte)(a+b);2、int最大值赋为2147483647,此段a+b结果类型与c匹配,固而编译没问题,c=a+b的结果是程序运行时计算的,超出表数范围的进位被舍去,所以结果又回到了-3,编译器不会去计算某个二元表达式是否会产生溢出。
解决方案 »
- 关于非静态变量的对象实例化
- 今天突然想到了一个问题,关于java如何实现对文件分配表的操作
- 求教个JTable的setRowSorter的问题
- JAVA问题
- 请问多看多写JAVA的实际小例子是不是很容易就会提高自己的编程能力的啊?
- 怎么用java得到计算机的名称???
- 各位tomcat&session高手,怎么获得当前所有的sessions,或者对tomcat自己的session方面的api,我能够有接口进去吗??
- 关于执行project文件
- 问题解决了以后,怎么给分?
- 为什么我用JBuilder3编译的CLASS文件不能在SUN的JDK下运行?(没有用JBCL)
- 在linux下有什么好的JAVA开发工具,那里下载(最好是免费的)
- 安装了1.4.02_03的j2sdk,请问如何查看每个类包的详细信息
string + byte/short /int 都为string
第二个就是出现的溢出问题了这些问题可以查看一下thinking in java这本书这本书真的不错.