有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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()方法


共 (3) 个答案

  1. # 2 楼答案

    • 如果您知道这些值不是空的,那么< > <= >=都是可以的,它们将被取消绑定到int
    • 除了检查操作数是否为空之外,您可能永远都不想使用==!=。它们将进行引用比较,而不是值比较——因此您可能希望使用equals方法
    • 如果其中一个值可能为空,那么< > <= >=是不安全的——它们可以给出一个NullPointerException
  2. # 3 楼答案

    接线员对灵长类动物没意见。 方法(例如,equals()或。equalsIgnoreCase()) 用于对象