84669 Lernen von Personen
152542 Lernen von Personen
20005 Lernen von Personen
5487 Lernen von Personen
7821 Lernen von Personen
359900 Lernen von Personen
3350 Lernen von Personen
180660 Lernen von Personen
48569 Lernen von Personen
18603 Lernen von Personen
40936 Lernen von Personen
1549 Lernen von Personen
1183 Lernen von Personen
32909 Lernen von Personen
public class Test { public static void main(String[] args) { String s1 = new String("abc"); String s2 = s1.intern(); System.out.println(s1==s2);这里为什么输出false String s3 = "123"; String s4 = s3.intern(); System.out.println(s3==s4); } }
字符串常量池里面没有“abc”为什么下面输出的结果为false,true?-PHP中文网问答-字符串常量池里面没有“abc”为什么下面输出的结果为false,true?-PHP中文网问答
围观一下哦,学习一下。
String s1 = new String("abc"); 生成了常量池中的“adc” 和堆空间中的字符串对象。
String s2 = s1.intern(); 这一行的作用是s1对象去常量池中寻找后发现"abc"已经存在于常量池中了。 然后生成一个s2的引用指向常量池中的“abc”对象。
结果就是 s1 和 s2 的引用地址明显不同。因此返回了false。
String s3 = "123"; 这一行代码会直接去常量池中创建
String s4 = s3.intern(); 发现"123"已经在常量池存在 直接引用指向常量池“123”对象
结果就是s3 和s4 的引用地址相同 返回true
不过jdk1.6 和1.7 有点不同 建议去看看api 或者百度下
字符串常量池里面没有“abc”为什么下面输出的结果为false,true?-PHP中文网问答-字符串常量池里面没有“abc”为什么下面输出的结果为false,true?-PHP中文网问答
围观一下哦,学习一下。
String s1 = new String("abc"); 生成了常量池中的“adc” 和堆空间中的字符串对象。
String s2 = s1.intern(); 这一行的作用是s1对象去常量池中寻找后发现"abc"已经存在于常量池中了。 然后生成一个s2的引用指向常量池中的“abc”对象。
结果就是 s1 和 s2 的引用地址明显不同。因此返回了false。
String s3 = "123"; 这一行代码会直接去常量池中创建
String s4 = s3.intern(); 发现"123"已经在常量池存在 直接引用指向常量池“123”对象
结果就是s3 和s4 的引用地址相同 返回true
不过jdk1.6 和1.7 有点不同 建议去看看api 或者百度下