这两种说法到底有什么区别
String s1="abc";
String s2=new String("abc");
Run Code Online (Sandbox Code Playgroud)
据我所知,第一个语句将在字符串池中创建一个对象,即 s1 将冷藏它。在第二个语句中,它将创建两个对象,因为我使用了 new 关键字,而 s2 将引用字符串池中的对象
现在,如果我一个接一个地执行这两个语句。因为第一个语句对象“abc”将在字符串池中,并且执行第二个语句 s2 将引用字符串池中已经存在的对象,如果我执行 s1= =s2 它应该返回 true 但是它返回 false。
你能解释一下为什么吗?
java ×1