public static void main(String[] args) {
/**
* 两个都是非new出来的Integer进行==比较,如果数在-128到127之间,则是true,否则为false。
* 对于-128到127之间的数,会进行缓存,有一个新的非new出来的Integer需要这个数时,
* java发现缓存中存在这个数了,就直接取出来赋值,不会重新开辟地址
* 当超过这个范围时,非New出来的Integer每次需要赋值,都会自动new Integer()来new一个对象
*/
Integer i =128,j=128,a=127,b=127;
// equals比较的是值,==比较的是地址值
System.out.println(i.equals(j));//输出为true
System.out.println(i==j);//输出为false
// System.identityHashCode方法是java根据对象在内存中的地址算出来的一个数值,不同的地址算出来的结果是不一样的。
System.out.println(System.identityHashCode(i));//输出为21685669
System.out.println(System.identityHashCode(j));//输出为2133927002
System.out.println(System.identityHashCode(a));//输出为1836019240
System.out.println(System.identityHashCode(b));//输出为1836019240
}