Java中整数对象比较运算符的引用安全性
何时可以安全地使用比较运算符,例如==,>;=&书信电报;在Java中,当使用整数对象而不是原始整数时
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/op2.html
我知道==对于引用是危险的,您应该使用。取而代之的是等于,但是其他操作符呢?e、 g
int x = 7;
int y = 7;
Integer a = new Integer(7);
Integer b = new Integer(7);
System.out.println(x == y);
System.out.println(a == b);
System.out.println(a.equals(b));
System.out.println(a <= b);
印刷品
true
false // Why you should use .equals
true
true // Seemed dangerous but it worked?
可以使用双等于以外的任何东西吗(所以>;、<;、>;=和<;=是安全的?),或者我应该用这个。compareTo()方法
# 1 楼答案
当变量引用
null
时是危险的。取消装箱操作将导致NullPointerException
<=
和>=
运算符不同于==
They can only be applied to numerical primitive types (and values),所以引用平等不是问题# 2 楼答案
< > <= >=
都是可以的,它们将被取消绑定到int
李>==
或!=
。它们将进行引用比较,而不是值比较——因此您可能希望使用equals
方法李>< > <= >=
是不安全的——它们可以给出一个NullPointerException
李># 3 楼答案
接线员对灵长类动物没意见。 方法(例如,equals()或。equalsIgnoreCase()) 用于对象