小编use*_*907的帖子

两个字符串语句的区别

这两种说法到底有什么区别

String s1="abc";
String s2=new String("abc");
Run Code Online (Sandbox Code Playgroud)

据我所知,第一个语句将在字符串池中创建一个对象,即 s1 将冷藏它。在第二个语句中,它将创建两个对象,因为我使用了 new 关键字,而 s2 将引用字符串池中的对象

现在,如果我一个接一个地执行这两个语句。因为第一个语句对象“abc”将在字符串池中,并且执行第二个语句 s2 将引用字符串池中已经存在的对象,如果我执行 s1= =s2 它应该返回 true 但是它返回 false。

你能解释一下为什么吗?

java

-3
推荐指数
1
解决办法
224
查看次数

标签 统计

java ×1