String类型通过==来进行比较,比较的是地址值是否相同。
代码演示:
package test;
public class Main {
public static void main(String[] args) {
String s1 = "WTY";
String s2 = "WTY";
String s3 = new String("WTY");
System.out.println(s1 == s2);
System.out.println(s1 == s3);
}
}
运行结果:
使用==作比较
- 基本类型: 比较的是数据值是否相同
- 引用类型:比较的是地址值是否相同
字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()
- public boolean equals(Object anObject):将此字符串与指定对象进行比较。参数直接传递一个字符串。
代码演示:
package test;
public class Main {
public static void main(String[] args) {
//构造方法的方式得到对象
char[] a = {'a', 'b', 'c'};
String s1 = new String(a);
String s2 = new String(a);
//直接复制的方式得到对象
String s3 = "abc";
String s4 = "abc";
//比较字符串的地址是否相同
System.out.println(s1 == s2);
System.out.println(s1 == s3);
System.out.println(s3 == s4);
System.out.println("-------------");
//比较字符串的内容是否相同
System.out.println(s1.equals(s2));
System.out.println(s1.equals(s3));
System.out.println(s3.equals(s4));
}
}
运行结果: