String类型通过==来进行比较,比较的是地址值是否相同。
    代码演示:

    1. package test;
    2. public class Main {
    3. public static void main(String[] args) {
    4. String s1 = "WTY";
    5. String s2 = "WTY";
    6. String s3 = new String("WTY");
    7. System.out.println(s1 == s2);
    8. System.out.println(s1 == s3);
    9. }
    10. }

    运行结果:
    image.png

    使用==作比较

    • 基本类型: 比较的是数据值是否相同
    • 引用类型:比较的是地址值是否相同

    字符串是对象,它比较内容是否相同,是通过一个方法来实现的,这个方法叫:equals()

    • public boolean equals(Object anObject):将此字符串与指定对象进行比较。参数直接传递一个字符串。

    代码演示:

    1. package test;
    2. public class Main {
    3. public static void main(String[] args) {
    4. //构造方法的方式得到对象
    5. char[] a = {'a', 'b', 'c'};
    6. String s1 = new String(a);
    7. String s2 = new String(a);
    8. //直接复制的方式得到对象
    9. String s3 = "abc";
    10. String s4 = "abc";
    11. //比较字符串的地址是否相同
    12. System.out.println(s1 == s2);
    13. System.out.println(s1 == s3);
    14. System.out.println(s3 == s4);
    15. System.out.println("-------------");
    16. //比较字符串的内容是否相同
    17. System.out.println(s1.equals(s2));
    18. System.out.println(s1.equals(s3));
    19. System.out.println(s3.equals(s4));
    20. }
    21. }

    运行结果:
    image.png