JAVA中支持Long型 + Long型 = Long型 ,这样的Long的Object直接想加来进行加减法运算吗?
注意这里不是小long型,是大Long型。如果可以是什么原因?如果不可以又是什么原因?
望各位大虾不吝赐教。Long型运算

解决方案 »

  1.   

    Long 是long的包装类。在两个Long类型相加的时候,JVM实现拆箱操作,转换成long 类型进行相加,之后装箱操作,将结果转换成Long类型。这些是自动完成的。
    所以Long类型可以相加减, Integer,Double都是一样的道理。
      

  2.   

    首先请了解一下自动装箱拆箱,如果楼主对instaceof比较了解,看下面的代码就明白了:
    public class LongDemo {
    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);
    }
    }
      

  3.   

    有了自动装箱拆箱,所以经常在项目中看到Integer和int混在一起操作