== 是否适用于每个 Class 对象?

Is == works on every Class object?

所以,让我先展示一下代码。

public class Class1 {
    private static class Class2 {
    String name;
    Object value;
    EntryNode next;

    }

} 

因此,如您所料,我正在研究链表。所以,对于给定的值作为函数中的参数;

public Object put(String name, Object value) {
    ...
    ...
    if (head.value == value) {
    }
}

那么,特别是,我们可以为对象 class 使用这个等号“==”吗?一般来说,除了字符串,我们可以在任何class中使用'=='吗?如果它是字符串,则没有。如果它是整数,那么肯定是的。但是现在,你怎么比较?

== with 告诉您右侧和左侧是否指的是完全相同的实例。对于 StringIntegerListBigIntegerMap 等值类型,这往往会给你一个意想不到的答案。你应该几乎总是使用 equals, 除了基本类型。

如果您想在不抛出 NullPointerException 的情况下处理 null,那么 java.util.Objects.equals(注意复数形式)可以为您处理。

Valhalla 项目可能会在 Java 的未来版本中将基元的概念扩展到用户定义的类型。