Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.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代码输出为false_Java_String - Fatal编程技术网

为什么下面的java代码输出为false

为什么下面的java代码输出为false,java,string,Java,String,在下面的代码中,即使a、c和d存储相同的值(a==c),变量也为false,而(a==d)为true equals()方法和==运算符都用于比较Java中的两个对象是运算符,equals()是方法。但是==运算符比较堆中对象的引用或内存位置,无论它们是否指向同一位置 每当我们使用new操作符创建对象时,它都会为该对象创建新的内存位置。所以我们使用==运算符来检查两个对象的内存位置或地址是否相同 当我们讨论equals()方法时,主要目的是比较两个对象的状态或对象的内容。但这两者之间有一个关系,即

在下面的代码中,即使a、c和d存储相同的值(a==c),变量也为false,而(a==d)为true

equals()方法和==运算符都用于比较Java中的两个对象是运算符,equals()是方法。但是==运算符比较堆中对象的引用或内存位置,无论它们是否指向同一位置

每当我们使用new操作符创建对象时,它都会为该对象创建新的内存位置。所以我们使用==运算符来检查两个对象的内存位置或地址是否相同

当我们讨论equals()方法时,主要目的是比较两个对象的状态或对象的内容。但这两者之间有一个关系,即equals()方法的默认实现类似==的工作意味着它将检查对象的内存引用,如果它们指向相同的位置,那么两个对象是相等的,并且它是在对象类中定义的

正如我们所知,java.lang.Object类是每个其他对象的父对象,因此每个对象的默认实现都是通用的,但是如果我们想覆盖该方法并给出自己的实现来检查两个对象的相等性,我们可以这样做,大多数Java类都有自己的equals方法实现,它们在其中检查对象的内容


阅读更多内容:

尝试使用equals方法而不是==
String a="test",
String b=a.toUpperCase();
String c=b.toLowerCase();
String d="test";
System.out.println(a==c); // o/p - false
System.out.println(a==d);  // True