神奇的Integer
    - 使用
==的情况:        - 如果比较Integer变量,默认比较的是地址值。    
 - Java的Integer维护了从
-128~127的缓存池     - 如果比较的某一边有操作表达式(例如a+b),那么比较的是具体数值   
 
   - 使用
equals()的情况:        - 无论是Integer还是Long中的
equals()默认比较的是数值。     - Long的
equals()方法,JDK的默认实现:会判断是否是Long类型    
   - 注意自动拆箱,自动装箱问题。 
 
   
  /**
 * @Auther: liuhaidong
 * Data: 2020/3/1 0001、17:24
 * Description:
 * @version: 1.0
 */
public class Test48 {
    public static void main(String[] paramArrayOfString) {
        Integer localInteger1 = Integer.valueOf(1);
        Integer localInteger2 = Integer.valueOf(2);
        Integer localInteger3 = Integer.valueOf(3);
        Integer localInteger4 = Integer.valueOf(3);
        Integer localInteger5 = Integer.valueOf(321);
        Integer localInteger6 = Integer.valueOf(321);
        Long localLong = Long.valueOf(3L);
        // 缓存池
        System.out.println(localInteger3 == localInteger4);
        // 超出缓存池范围
        System.out.println(localInteger5 == localInteger6);
        // 存在a+b数值表达式,比较的是数值
        System.out.println(localInteger3.intValue() == localInteger1.intValue() + localInteger2.intValue());
        // equals比较的是数值
        System.out.println(localInteger3.equals(Integer.valueOf(localInteger1.intValue() + localInteger2.intValue())));
        // 存在a+b数值表达式,比较的是数值
        System.out.println(localLong.longValue() == localInteger1.intValue() + localInteger2.intValue());
        // Long的equals()先判断传递进来的是不是Long类型,而a+b自动装箱的是Integer类型
        System.out.println(localLong.equals(Integer.valueOf(localInteger1.intValue() + localInteger2.intValue())));
        // ... 最后一句在这里漏掉了,大家应该可以推断出来
    }
}
  