Equality comparison of Java Long objects

Long originalLong = (long) -128;
		Long newLong = (long) -128;
		System.out.println("Object Compare:" + (originalLong == newLong));
		System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue()));
		System.out.println("Equals Compare:" + originalLong.equals(newLong));


结果为:
Object Compare:true
LongValue Compare:true
Equals Compare:true

Long originalLong = (long) 127;
		Long newLong = (long) 127;
		System.out.println("Object Compare:" + (originalLong == newLong));
		System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue()));
		System.out.println("Equals Compare:" + originalLong.equals(newLong));

结果为:
Object Compare:true
LongValue Compare:true
Equals Compare:true

Long originalLong = (long) -129;
		Long newLong = (long) -129;
		System.out.println("Object Compare:" + (originalLong == newLong));
		System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue()));
		System.out.println("Equals Compare:" + originalLong.equals(newLong));


结果为:
Object Compare:false
LongValue Compare:true
Equals Compare:true

Long originalLong = (long) 128;
		Long newLong = (long) 128;
		System.out.println("Object Compare:" + (originalLong == newLong));
		System.out.println("LongValue Compare:" + (originalLong.longValue() == newLong.longValue()));
		System.out.println("Equals Compare:" + originalLong.equals(newLong));


The result is:
Object Compare:false
LongValue Compare:true
Equals Compare: trueSummary

: When the value of the Long object is in the range of the long type, whether the value of the compared object is equal can be compared directly with "==", otherwise it needs to be compared. Use the other two methods to compare to get the correct result.
Conclusion: When comparing the value of two Long objects for equality, use the other two methods to compare directly instead of using the "==" operator.

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=327102382&siteId=291194637