<div class="iteye-blog-content-contain" style="font-size: 14px"></div>
之前没发现equals和==有什么不一样,一直在互换着用,直到有一天,一个偶然,哈哈。。。
String s1=new String("789");
String s2=new String("789");
System.out.println("s1.equals(s2)是 "+s1.equals(s2));
System.out.println("s1==s2 是 "+(s1==s2));
String s3="abc";
String s4="abc";
System.out.println("s3.equals(s4)是 "+s3.equals(s4));
System.out.println("s3==s4是 "+(s3==s4));
输出结果:
s1.equals(s2)是 true
s1==s2 是 false
s3.equals(s4)是 true
s3==s4是 true
查阅资料后才知道:String类重写了Object类的equals方法,重写后的equals方法比较的不再是对象的地址,而是字符串的内容,即如果两个字符串一样,则返回true。“==”比较的是对象的地址。
s1与s2指向的是两个独立的对象,他们各自使用new在堆上分配空间,因此地址肯定不相等,所以s1==s2 的值为false,而他们的字符是相等的,所以s1.equals(s2)是true。
String类重写了equals方法,所以比较的是字符内容,有的类没有重写equals方法就依然是比较地址。
初学者,so比较浅显~
分享到:
相关推荐
Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的概念,很多开发者容易混淆它们。理解这两个概念的区别是非常重要的,因为它们对编程的正确性和性能都有很大的影响。 首先,我们需要了解 Java ...
【Java面试题】equals与==的区别
在Java编程语言中,`equals`方法与`==`操作符是进行对象比较时最常用的两种方式,但它们之间存在着显著的区别。理解这些差异对于正确地处理对象比较至关重要。 ### `==` 操作符 `==`操作符主要用于比较两个基本...
Java 中的equals和==的区别 Java 是一种面向对象的编程语言,其中有两种数据类型:基本数据类型和引用数据类型。基本数据类型包括整数类型、浮点数类型、字符类型、布尔类型等,共有八种;而引用数据类型则包括 ...
字符串的intern()方法也值得讨论,它会返回常量池中与当前字符串相等的字符串,如果常量池中不存在,则将当前字符串放入常量池并返回引用。这可能导致`==`和`equals()`产生相同的结果: ```java String str1 = new ...
Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个不同的运算符,它们之间的区别是非常重要的。 首先,我们需要了解 Java 中的内存模型。在 Java 中,变量可以分为两种:基本类型(primitive type)和...
Java中equals与==的用法和区别 Java 中的 equals 与 == 是两个常用的比较操作符,但是它们的用法和区别却非常重要。理解它们的差异是编写高效、正确的 Java 程序的关键。 什么是 == ? 在 Java 中,== 是一个比较...
Java 中 equals 和 == 的区别 Java 中的 equals 和 == 是两个常用的操作符,经常用于比较对象或变量的值。然而,许多开发者不知道它们之间的区别,或者误用它们,导致程序出错。下面我们将详细解释 equals 和 == 的...
Java 中equals和==的区别
System.out.println("1,通过 equals 输出的结果为:greating 与 Hello 的值不相等!"); } // 使用 == 比较字符串引用 if ((greating.substring(0, 2) + "llo") == "Hello") { System.out.println("2,通过 ==...
java中equals和==的区别-5页.pdf
hashcode、equals、==总结1简单总结.txt,他们之间的区别
而`equals()`方法是Object类中的一个成员方法,它的默认行为也是比较两个对象的引用是否相等,与`==`一致。但是,很多类(如String、Integer等)都重写了`equals()`方法,以便进行更深层次的内容比较。例如,String...
1. 对于非字符串对象,`equals()`方法默认的行为与`==`相同,即比较对象的引用。但是,通常建议覆盖`equals()`方法以实现根据对象内容进行比较,而不是仅基于引用。 2. 在`String`类中,`equals()`方法已经被重写,...
equals方法的默认实现是比较两个对象的引用是否相同,这与"=="运算符的功能是一样的。但是,很多Java类都重写了equals方法以提供更加有用的行为。例如,String类就重写了equals方法,以便比较两个字符串的内容是否...
默认情况下,`equals()`方法的行为与`==`一样,即比较对象的引用。然而,为了实现更复杂的逻辑,比如比较对象的内容而不是引用,通常需要重写`equals()`方法。例如,String类和许多其他类都重写了`equals()`,使得它...