字符串的常量池和比较比较相关方法

字符串的常量池

程序当中直接写上双引号字符串,就在字符串常量池中。

对于基本类型来说,==是进行数值的比较。

对于引用类型来说,==是进行【地址值】的比较。

     String s1 = "abc";
        String s2 = "abc";
        char[] charArray = {'a','b','c'};
        String s3 = new String(charArray);
        System.out.println(s1==s2);
        System.out.println(s1==s3);
        System.out.println(s2==s3);

1.对于引用类型来说,==进行的是地址值的比较

2.双引号直接写的字符串在常量池当中,new的不在池当中

比较比较相关方法

equals(Object obj):参数可以是任何对象,只有参数是一个字符串并且内容相同的才会给true;否则返回false。

注意:

  1.任何对象都能用Object进行接收。

  2.equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。

  3.如果比较双方一个常量一个变量,推荐把常量字符串写在前面。

推荐,“abc”.equals(str)  不推荐:str.equals("abc");

equalsIgnoreCase(String str):忽略大小写,进行内容比较。(只有英文字母区分大小写,其他都不区分大小写)

String s1 = "abc";
        String s2 = "abc";
        char[] charArray = {'a','b','c','l','c'};
        String s3 = new String(charArray);
        System.out.println(s1.equals(s2));
        System.out.println(s2.equals(s3));
        System.out.println(s3.equals("anclc"));
        System.out.println("anc".equals(s1));
        String str4 = "hello";
        System.out.println(s1.equals(str4));
        System.out.println("=============");
        String s5 = "abc";
        System.out.println("abc".equals(s5));//推荐
        System.out.println("===============");
        String s6 = "Java";
        String s7 = "java";
        //区分大小写
        System.out.println(s6.equals(s7));
        //忽略大小写
        System.out.println(s6.equalsIgnoreCase(s7));

 

 

 

posted @ 2022-06-30 11:19  魔光领域  阅读(78)  评论(0编辑  收藏  举报