不等价的
x+=1.0;这个过程中没有类型转换的
x=x+1.0f;就有一个先转化成doulble的过程类似的是
short a=(short)1;
short b;
b=a+b;//错误
b+=a;//正确
x+=1.0;这个过程中没有类型转换的
x=x+1.0f;就有一个先转化成doulble的过程类似的是
short a=(short)1;
short b;
b=a+b;//错误
b+=a;//正确
解决方案 »
- 虽然==与equals的问题很老了,我还是忍不住来发个帖提问
- JFrame中的setMinimumSize和setMaxmumSize
- 能不能用JAVA代码实现登陆框自动填写并登陆?
- throws的问题
- 新手求助!!
- 为什么我的jsp页面会显示数据库中的null标志啊?
- 关于Component的背景,VB很好实现,Java Swing也应该可以吧
- 如何在application中放入声音(是au格式),比如按一下键它就播放。
- JFrame有show()这个方法吗?
- 大家好,google今天已经能用了,还是原来的网址www.google.com
- 关于JAVA中日期的计算问题
- 请教String类中的replaceFirst方法
基本运算会以最高精度的数字为基准来进行计算
深入地看就是
int i=1;
long j=1L;
i+j//注意这句
jvm首先把i的符号位拿出,然后再在高位添32个0,然后再把符号位放在最高位
这时候i,j在积存器中都是64位的了,然后相加保存,那么jvm肯定不会自动地去掉除符号位之外的高位的0,所以得到的结果就是64位的long了
double db = 2.2;
long l = 23123123l;
String test = "test"+num;System.out.println(test);
System.out.println(db+num);
System.out.println(l+db);
+运算符用于不同基本类型数据时,自动将输出结果转为运算中高精度的类型
x=x+1.0;//可以理解为:x=(float)(x+1.0)包括其他的扩展赋值运算符还有++,--都可以这样理解
byte x=1;
x=x+1;//错误byte x=1;
++x;//正确,可以理解为x=(byte)(x+1);