直接上代码
package com.f_;
import org.junit.Test;
public class IntegerDemo {
@Test
public void test1() {
Integer a = 1;
Integer b = 1;
Integer c = 2;
System.out.println(a==b);//true
System.out.println(a.equals(b));//true
System.out.println(c==(a+b));//true
System.out.println(c.equals(a+b));//true
}
@Test
public void test2() {
Integer a = 190;//等效于Integer a = Integer.valueOf(190);
Integer b = 190;
Integer c = 380;
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println(c==(a+b));//true
System.out.println(c.equals(a+b));//true
}
@Test
public void test3() {
Integer a = new Integer(2);
Integer b = new Integer(2);
Integer c = new Integer(4);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println(c==(a+b));//true
System.out.println(c.equals(a+b));//true
}
@Test
public void test4() {
Integer a = new Integer(220);
Integer b = new Integer(220);
Integer c = new Integer(440);
System.out.println(a==b);//false
System.out.println(a.equals(b));//true
System.out.println(c==(a+b));//true
System.out.println(c.equals(a+b));//true
}
}
结论:
不管是new出来的还是不是new出来的
Integer == 默认比地址(前提在-128~127之间)
equals 比值(无关范围)
当操作表达式(==或者equals)的一边有运算符(例如a+b)时,则自动拆箱,比值(无关范围)