public class ConstantPoolAndStrTest { String string1 = "Hello"; public void methodTest(){ String string2 = "pool"; } }
String strTest = "my"+"string";
String string1 = "a"; String string2 = "b"; String string3 = string1+string2; String string4 = string1+"c";
String newStrtest = new String("pool");
String s1 = "hey"; String s2 = new String("hey"); System.out.println(s1==s2);//==比较的是引用,s1指向常量池,s2指向堆中,引用指向不同地址,因此输出false
string.intern()会检查常量池中是否存在string则返回池里的字符串引用;如果不存在则将string加入到常量池再返回其引用。这样做可以避免在堆中不断的创建字符串对象,起到节省空间的作用。
String str1 = "a"; String str2 = "bc"; String str3 = "a"+"bc"; String str4 = str1+str2; System.out.println(str3==str4); str4 = (str1+str2).intern(); System.out.println(str3==str4);
str4 = (str1+str2).intern();
泡泡 2016-11-05
寒江独钓 2018-05-20
荡神戏魔 2019-02-24
白诗秀儿 2016-02-01
白诗秀儿 2016-11-23
伍仔 2017-05-09
吟风 2016-06-02
沙落雁 2016-07-27
沙落雁 2016-04-25
梦想天蓝 2019-01-17