Java Integer.equals()判断相等

Java中判断Integer是否相等可以用equals()或者“==”,“==”是进行地址及值比较,equals方法是数值比较,当Integer的值不在-128到127的时候,会新new一个对象,因此这个时候如果用“==”进行判断就会报错。

定义

boolean equals(Object obj)  //比较此对象与指定对象

Integer.equals()传入Integer对象,只进行值是否相等判断。

例子

public class IntegerEqualsDemo {
	public static void main(String[] args) {
		Integer a= new Integer(5);
		Integer b= new Integer(5);
		Integer c = 127;
		Integer d = 127;
		Integer e = 129;
		Integer f = 129;
		int g = 128;
		System.out.println(a==b);       //false,2个不同的Integer对象,“==”会校验Integer地址是否相同
		System.out.println(a.equals(b));   //true,只是校验Integer值是否相同
		System.out.println(c == d);    //true
		System.out.println(e == f);    //false,Integer值不在-128到127之间,会new一个新对象
		System.out.println(f == g);    //true
	}
}

因此,在使用Integer的时候,如果不为null,尽量用equals()方法进行判断是否相等,当然如果用int的话,是可以直接用“==”,因为int是值类型。

版权声明:本文为JAVASCHOOL原创文章,未经本站允许不得转载。