考虑声明:
String s = new String("abc");
这个语句会创建两个String对象,即"abc"和由's'表示的对象吗?
如果它创建了两个对象,那么"abc"会被存储在String池中还是只是被丢弃?
编辑:
我在引用字符串对象和字符串文字之间的差异时提出这个问题,在最后两个答案中,拒绝创建两个对象.
避免这种行为,因为"abc"已经是一个String并且通过制作new String,你正在创造一个不必要的行为Object.
而是去 String s = "abc";
这样,StringJVM就会将其添加到池中.
要回答你的问题,你只是创造一个Object s指的是"abc".
因此,当你说String t = new String("abc");然后做s==t,将屈服于false.因为他们有各自独立的实例abc.
| 归档时间: |
|
| 查看次数: |
211 次 |
| 最近记录: |