首页 > 其他分享 >第3题-==&equals

第3题-==&equals

时间:2023-01-06 14:04:59浏览次数:31  
标签:String str2 System equals println true


文章目录

  • ​​`==`​​
  • ​​`equals`​​
  • ​​`String`中的`equals`​​

==

比较的是栈中的值,基本数据类型比较的是变量值,引用数据类型比较的是堆中内存对象的地址。(栈中存储地址)。

equals

基类​​Object​​​类的方法,默认就是​​==​​,通常会进行重写。

// Object
public boolean equals(Object obj) {
return (this == obj);
}

​String​​​中的​​equals​

  • 相等情况
  • 栈中存储的堆内存对象地址信息一致(同一个对象)
  • 不论地址信息是否一致,只要字符串本身内容相等
// String
public boolean equals(Object anObject) {
if (this == anObject) {
return true;
}
if (anObject instanceof String) {
String anotherString = (String)anObject;
int n = value.length;
if (n == anotherString.value.length) {
char v1[] = value;
char v2[] = anotherString.value;
int i = 0;
while (n-- != 0) {
if (v1[i] != v2[i])
return false;
i++;
}
return true;
}
}
return false;
}
// demo

public class StringDemo {
public static void main(String args[]) {
String str1 = "Hello";
String str2 = new String("Hello");
String str3 = str2; // 引用传递
System.out.println(str1 == str2); // false System.out.println(str1 == str3); // false
System.out.println(str2 == str3); // true
System.out.println(str1.equals(str2)); // true
System.out.println(str1.equals(str3)); // true
System.out.println(str2.equals(str3)); // true
}
}


标签:String,str2,System,equals,println,true
From: https://blog.51cto.com/u_15932195/5993209

相关文章

  • Java 如何重写对象的 equals 方法和 hashCode 方法
    前言:Java对象如果要比较是否相等,则需要重写equals方法,同时重写hashCode方法,而且hashCode方法里面使用质数31。接下来看看各种为什么。一、需求:对比两个对象......
  • 比较 == 还是 equals
    比较==?equals?结论:所有的引用数据类型包括包装类型都用equals所有基本数据类型都用==publicclassCompare{publicstaticvoidmain(String[]args){......
  • "==" 与 equals 比较字符串对象
    "=="与equals在字符串比较中的不同"=="比较的是字符串的地址值,是不是同一份内存空间的地址(相同引用)equals比较的是字符串的内容,同一个内存空间地址里值(相同内......
  • Java笔记(7)——equals和toString方法的重写和一个例子
    1.Object类​​Object​​​类是所有类的根父类,如果在类中没有​​extends​​关键字指明其父类,默认其父类为Object类。2.==与equals方法的区别​​==​​​:是否指向了同......
  • 说说hashCode() 和 equals() 之间的关系?
    上一篇关于介绍Object类下的几种方法时面试题时,提到equals()和hashCode()方法可能引出关于“hashCode()和equals()之间的关系?”的面试题,本篇来解析一下这道基础面试题。......
  • Equals和"=="
    不管是Equals还是“==”都倾向于:对于引用类型看是否指向同一对象;对于值类型,判断类型的值是否相等。对于对象来说,地址不同的情况下,就算对象的值相同,两个对象也不会相等。......
  • java中== 和equals的区别
    本文主要介绍==和equals的区别1.==比较的是地址,引用类型(除了String类)的时候,只要不是同一个对象,就不是同一个地址,String类型的时候,如果new出来两个对象,那么也是不同地......
  • jdk: String的equals方法和contentEquals方法
    publicbooleanequals(ObjectanObject)publicbooleancontentEquals(CharSequencecs)这两个方法都可以用来比较String对象内容序列的异同,但也存在差异。最大的差别就是S......
  • equals() and hashCode() methods in Java
    https://www.geeksforgeeks.org/equals-hashcode-methods-java/ Java.lang.objecthastwoveryimportantmethodsdefined:publicbooleanequals(Objectobj)andp......
  • 重写equals就需要重写hashCode
    重写equals不重写hashCodepublicclassStudent{privateLongid;privateStringcode;privateStringname;publicStudent(Longid,Stringcod......