可能重复:
等于和==之间的差异
例如,如果我有
MyClass foo = new MyClass();
MyClass bar = new MyClass();
if (foo == bar) {
// do something
}
if (foo < bar) {
// do something
}
if (foo > bar) {
// do something
}
Run Code Online (Sandbox Code Playgroud)
怎么做foo和bar比较?Java是否在寻找.compareTo()要实现的方法MyClass?Java是否在内存中比较对象的实际二进制结构位?
非常简单的算术比较运算符==并!=比较对象引用或对象的内存地址.>,和<相关的运算符不能与对象一起使用.
因此==,!=仅当您想确定两个不同的变量是否指向同一个对象时才有用.
作为一个例子,这在事件处理程序中很有用:如果你有一个事件处理程序绑定到例如多个按钮,你需要在处理程序中确定按下了哪个按钮.在这种情况下,您可以使用==.
您询问的类型的对象比较是使用类似方法.equals或特殊用途方法捕获的String.compareTo.
值得注意的是,默认Object.equals方法等同于==:它比较对象引用; 这在文档中有所涉及.Java中构建的大多数类都equals使用自己的实现覆盖:例如,String覆盖一次equals比较一个字符.要.equals为您自己的对象获得更具体/更有用的实现,您需要覆盖.equals更具体的实现.
| 归档时间: |
|
| 查看次数: |
1140 次 |
| 最近记录: |