String不同创建方式的区别

Posted on 2022-11-24 21:20  梦中千秋  阅读(18)  评论(0编辑  收藏  举报

例子

    public static void main(String[] args) {
        String str1 = "aaa";
        String str2 = "aaa";
        System.out.println(str1 == str2);
        String str3 = new String("aaa");
        String str4 = new String("aaa");
        System.out.println(str3 == str4);

    }

我们知道 == 比较引用类型是比较的引用地址,可以发现第一个输出true,第二个输出false,这是因为str1和str2都指向字符串常量池中的 “aaa” 的引用地址 , 而str3和str4 创建了一个新对象 ,“凡是new出来的都存在堆(Heap)内存中”,是在堆内存中的, 不一样的引用地址。