==
- 若==两边的变量是基本类型,则只要它们数值相等,则就判断这两个变量相等,返回true
public static void test(){
int a=10;
int b=10;
System.out.println(a==b);
}
输出结果:
true
- 若==两边的变量是引用变量,则其比较的是这两个变量的内存地址,只有它们指向同一个对象时,才会返回true
public static void test(){
String str1="你好";
String str2=new String("你好");
String str3="你好";
String str4=new String("你好");
int b=10;
System.out.println(str1==str2);
System.out.println(str1==str3);
System.out.println(str2==str4);
}
输出结果:
false
true
false
equals
-
equals方法不能作用于基本类型的变量
-
如果没有对equals方法进行重写,则比较的时引用类型的变量所指向的对象的地址
-
如果被String、Data等类对equals方法进行了重写,则比较的是所指向对象的内容。
-
String类的equals方法的重写
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;
}
- equal方法源码:
public boolean equals(Object obj) {
return (this == obj);
}
- 对String类中的equals方法的练习
public static void test(){
String str1="你好";
String str2=new String("你好");
String str3="你好";
String str4=new String("你好");
System.out.println(str1.equals(str2));
System.out.println(str1.equals(str3));
System.out.println(str2.equals(str4));
true
true
true
转载:https://blog.csdn.net/u012748059/article/details/101934244
查看评论