String name = "zhangsan" //产生一个对象,在字符串池中储存
String name2 = "zhangsan"
首先会在字符串池中查找是否已经存在"zhangsan" 6. 如果存在,则让name2也指向"zhangsan",如果不存在则在字符串池中新建一块给"zhangsan" 用这种方式达成了共享 7. 如果用
String s2= new String("Hello");
则会产生两个对象,堆和字符串池各一个。
在这种情况下 string==string2的结果是false 而string.equals(string2)的结果是true,因为equals比的不是堆里的而是字符串池里的
本文章使用limfx的vscode插件快速发布