总结:
==
操作符的作用
用于基本数据类型的比较
判断引用是否指向堆内存的同一块地址。
equals()
方法的作用
用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型
compareTo()
方法用于两种方式的比较
字符串与对象进行比较。
按字典顺序比较两个字符串。
1.equals()
equals()
用于判断两个变量是否是对同一个对象的引用,即堆中的内容是否相同,返回值为布尔类型
代码:
public class Test {
public static void main(String[] args) {
String firstString = "coderolls";
String secondString = "javablog";
String thirdString = "coderolls";
String fourthString = "CodeRolls";
//运算符比较堆中对象的引用或内存位置,无论它们是否指向相同的位置
System.out.println("firstString.equals(secondString) : " + firstString.equals(secondString));
//运算符比较堆中对象的引用或内存位置,无论它们是否指向相同的位置
System.out.println("firstString.equals(thirdString) : "+ firstString.equals(thirdString));
System.out.println("firstString.equalsIgnoreCase(fourthString) : "+ firstString.equalsIgnoreCase(fourthString));
}
}
结果:
firstString.equals(secondString) : false
firstString.equals(thirdString) : true
firstString.equalsIgnoreCase(fourthString) : true
2.==
==
运算符比较堆中对象的引用或内存位置,无论它们是否指向相同的位置
代码:
public class Test {
public static void main(String[] args) {
String firstString = "coderolls";
String secondString = "javablog";
String thirdString = "coderolls";
String fourthString = new String("coderolls");
System.out.println(firstString == secondString);
System.out.println(firstString == thirdString);
System.out.println(firstString == fourthString );
}
}
结果:
false
true
false
3.equals()和==的比较
在 Java 字符串中,== 运算符用于检查字符串对象的引用,equals() 方法用于检查两个字符串的值是否相等。
4.compareTo()
compareTo() 方法按字典顺序比较两个字符串。 比较基于字符串中每个字符的 Unicode 值。
如果字符串等于另一个字符串,则该方法返回 0。
如果字符串小于另一个字符串(较少字符),则返回小于 0 的值;
如果字符串大于另一个字符串(更多字符),则返回大于 0 的值。
代码:
public class Test {
public static void main(String[] args) {
String s1="hello";
String s2="hello";
String s3="meklo";
String s4="hemlo";
String s5="flag";
System.out.println(s1.compareTo(s2));//0 因为两者相等
System.out.println(s1.compareTo(s3));//-5 因为“h”比“m”低 5 倍
System.out.println(s1.compareTo(s4));//-1 因为“l”比“m”小 1 倍
System.out.println(s1.compareTo(s5));//2 因为“h”是“f”的 2 倍
}
}
结果:
0
-5
-1
2