开发者社区> 问答> 正文

Java中将字符串创建为new()和文本之间有什么区别?

希望可以使用代码讲解一下。

展开
收起
YDYK 2020-04-24 20:03:42 457 0
1 条回答
写回答
取消 提交回答
  • 如果使用新运算符创建字符串,则不会将其暂留。它将在堆内存中创建新对象,即使 String 对象已存在相同的内容也是如此。

        String str1=new String("hello");
        String str2=new String("hello");
        System.out.println(str1==str2);
    

    它将返回假作为str1和str2将指向不同的对象 如果使用赋值运算符创建 String,它将转到 String 常量池,并且它被暂存。如果创建另一个具有相同内容的字符串,则两者都将引用 String 常量池中的同一对象。

    String str1="helloworld"; String str2="helloworld"; System.out.println(str1==str2);

    它将返回 truestr1和str2将指向字符串常量池中的同一对象。

    2020-04-24 20:03:59
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载