JAVA运算自动拆箱

一个例子:

System.out.println(Double.valueOf("12.0") == Double.valueOf("12"));//false
System.out.println(Double.valueOf("12.0").doubleValue() == Double.valueOf("12").doubleValue());//true
System.out.println(Double.valueOf("12.0").doubleValue() == Double.valueOf("12"));//true
System.out.println(Double.valueOf("12.0") == 1* Double.valueOf("12"));//true

第一行:判断符两边为两个Double实例,不同的实例内存hashcode不一样,所以false

第二行:判断符的两侧都进行了拆箱,判断两个double型数值,所以true

第三行:判断符的左侧进行了拆箱,所以在比较时右侧自动拆箱,所以true

第四行:判断符的右侧进行了运算,int型的数值与Double型相乘运算,Double会自动拆箱,从而

              比较时左侧也自动拆箱,所以true

猜你喜欢

转载自blog.csdn.net/chinoukin/article/details/83789186