java的String

String类型可以有两种方式创建;

1.构造方法:

char[] chs = {'a','b','c'};
    String s1 = new String(chs);

2.直接赋值:

String s3 = "abc";

两者的区别就是,使用构造方法创建的对象,值相同的话内存地址不同,而使用直接赋值创建的对象,值相同的话内存地址相同(== 引用比较的是内存地址)。

代码:

public class StringDemo {
    public static void main(String[] args) {
        //构造方法创建String类型对象
        char[] chs = {'a','b','c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值的方式创建String类型对象
        String s3 = "abc";
        String s4 = "abc";

        System.out.println(s1 == s2);
        System.out.println(s1 == s3);
        System.out.println(s3 == s4);
    }
}

结果:

 

 

那么怎么比较内容呢?引入一个新的方法,equals;

代码:

public class StringDemo {
    public static void main(String[] args) {
        //构造方法创建String类型对象
        char[] chs = {'a','b','c'};
        String s1 = new String(chs);
        String s2 = new String(chs);

        //直接赋值的方式创建String类型对象
        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));
    }
}

结果:

 

posted @ 2021-03-26 17:48  Sherlock_W  阅读(32)  评论(0编辑  收藏  举报