public
class
EqualsMethod
java
{
public
static
void
main(String[] args)
{
Integer n1 =
new
Integer(
47
);
Integer n2 =
new
Integer(
47
);
System.out.print(n1 == n2);
System.out.print(
","
);
System.out.println(n1 != n2);
}
}
首先 咱们要知道 == 这个比较符号
==可用于基本类型和引用类型:当用于基本类型时候,是比较值是否相同;当用于引用类型的时候,是比较对象是否相同。
"=="和"!="比较的是地址 指第一个new()c出来的地址
因此由于两次new() 分出的内存也不一样
因此
System.out.print(n1 == n2);返回 false
!=就返回true
缓存
还有例子函数
Integer n33 = Integer.valueOf(47);
Integer n44 = Integer.valueOf(47);
System.out.println(n33 == n44);
Integer n1 = new Integer(47);
Integer n2 = new Integer(47);
System.out.print(n1 == n2);
System.out.print(",");
System.out.println(n1 != n2);
打印结果
true
true
false,true
1. -128<= x<=127的整数,将会直接缓存在IntegerCache中,那么当赋值在这个区间的时候,不会建立新的Integer对象,而是从缓存中获取已经建立好的Integer对象;当大于这个范围的时候,直接new Integer来建立Integer对象。 this