Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么Java中的两个对象不同?_Java - Fatal编程技术网

为什么Java中的两个对象不同?

为什么Java中的两个对象不同?,java,Java,我知道要使对象在Java中唯一,我必须实现hashcode()和equals()方法 但是,当我们从一个类创建两个对象时,为什么这两个对象不同呢 public class ClassA { public static void main(String []arg) { ClassA classa = new ClassA(); ClassA classb = new ClassA(); //here classa and classb

我知道要使对象在Java中唯一,我必须实现
hashcode()
equals()
方法

但是,当我们从一个类创建两个对象时,为什么这两个对象不同呢

public class ClassA {

    public static void main(String []arg) {

        ClassA classa = new ClassA();
        ClassA classb = new ClassA();

        //here classa and classb are not equal. Why?
        if(classa == classb) //returns false

    }    
}

=
操作员检查对象的内存地址
classa
classb
是不同的对象,它们有不同的内存地址,因此
classa==classb
返回false。

因为
new
创建了一个。。。新对象。将它们与方法
equals()
@Maroun No进行比较。我想知道原因。如果我们创建了相同的两类对象,为什么不使用
==
比较引用类型呢=。请改用
equals(…)
方法。了解
==
检查两个对象引用是否相同,这不是您感兴趣的。另一方面,equals方法检查这两个引用在功能上是否等效,这就是这里的问题所在。
“不,我想知道为什么。”
——请理解,在这个网站上已经多次询问并回答了这个问题()。如果你觉得你的问题是新的或不同的,那么你应该展示你的研究成果,并说明你的问题与其他问题不同的原因。如果你在提出问题之前还没有投入这项关键的努力去做一个体面的搜索,那么你可能是过早地提出了这个问题。