JAVA中支持Long型 + Long型 = Long型 ,这样的Long的Object直接想加来进行加减法运算吗?
注意这里不是小long型,是大Long型。如果可以是什么原因?如果不可以又是什么原因?
望各位大虾不吝赐教。
Long型运算
首先请了解一下自动装箱拆箱,如果楼主对instaceof比较了解,看下面的代码就明白了:public class LongDemo {有了自动装箱拆箱,所以经常在项目中看到Integer和int混在一起操作Long 是long的包装类。在两个Long类型相加的时候,JVM实现拆箱操作,转换成long 类型进行相加,之后装箱操作,将结果转换成Long类型。这些是自动完成的。
public static void main(String[] args) {
Long a = 10L;
Long b = 12L;
Long c = a + b;
/*
下面这句编译会报错(Incompatible conditional operand types long and Long),
也就是说编译器认为(a + b)不是Long类型的,而是long类型的。
因为自动拆箱了。
*/
System.out.println((a + b) instanceof Long);
//下面这句就可以,因为上面用Long去接收a + b的值了,就又装箱了。
System.out.println(c instanceof Long);
}
}
所以Long类型可以相加减, Integer,Double都是一样的道理。