String s = new String("xyz");创建了几个对象
String s = new String("xyz");创建了几个对象?
下面说法正确吗?
创建String 有两个方法
1,String a = "xyz"
2,String a = new String("xyz")
为了提高效率,JVM 有个 String constant pool 的东东,先命名为scp
当用第一种方法创建 String 时,首先在这个scp里找,
看有没有现成的"xyz",如果有,就直接把 a 指向它,如果
没有,就在scp 里面创建一个,然后把 a 指向它。。。。
当用第二种方法创建String 时,用正常的方法在 heap 中创建一个
"xyz" .然后再创建一个 "xyz" 放到 scp 里,以备使用。。。。
(scp 与 heap 是两个不同的内存区域)