String s2 = new String(“abc”); 这句,创建了两个对象..其内容都是”abc”.注意,s2不是对象,只是引用.只有new生成的才是对象.创建的流程是,首先括号里的”abc”先到String pool里看有没”abc”这个对象,没有则在pool里创建这个对象..所以这里就在pool创建了一个”abc”对象.然后 通过new语句又创建了一个”abc”对象..而这个对象是放在内存的堆里. .这里的s2指向堆里的对象.
String s1 = “abc”; 这条语句,s1是引用.读到”abc”会在Stringpool里查找有没有”abc”这个对象.没有则创建一个。
|