通过"new"创建String对象

a L*_*ner 3 java

考虑声明:

String s = new String("abc");

这个语句会创建两个String对象,即"abc"和由's'表示的对象吗?

如果它创建了两个对象,那么"abc"会被存储在String池中还是只是被丢弃?

编辑:

我在引用字符串对象和字符串文字之间的差异时提出这个问题,在最后两个答案中,拒绝创建两个对象.

Kaz*_*ara 5

避免这种行为,因为"abc"已经是一个String并且通过制作new String,你正在创造一个不必要的行为Object.

而是去 String s = "abc";

这样,StringJVM就会将其添加到池中.

要回答你的问题,你只是创造一个Object s指的是"abc".

因此,当你说String t = new String("abc");然后做s==t,将屈服于false.因为他们有各自独立的实例abc.