https://zhidao.baidu.com/question/651217979415128765.html
String a =
"abc"
;
String b =
"abc"
;
System.out.println(a==b);
//true
String c =
new
String(
"def"
);
String d =
new
String(
"def"
);
System.out.println(c==d);
//false
对于第一种方式· java有一个字符串缓冲区 你新建一个的时候它会先找缓冲区里有没有这个字符串 如果有 直接返回引用 没有就在里面新建
第二种方式 新建一个 它首先也会去缓冲区里边查找 不管有没有 它都会在堆里新建一个 如果缓冲区里面没有 则在缓冲区里面也新建一个·
例如string s=“tt”
string s1=“tt” s等于s1
而 string s=new string(“ss”)
string s1=new string(“ss”) s不等于s1
本文探讨了Java中字符串的两种创建方式及其内部实现机制。详细解释了字符串缓冲区的作用及如何影响字符串实例的创建过程,并通过示例代码展示了不同创建方式下字符串比较的结果差异。

993

被折叠的 条评论
为什么被折叠?



