补充:String.intern()方法
intern方法用来返回常量池中的某字符串,如果常量池中已经存在该字符串,则直接返回常量池中该对象的引用。否则,在常量池中加入该对象,然后返回引用。
先做基本了解
intern()判断这个常量是否存在于常量池。
(1)如果存在
1.1判断存在内容是引用还是常量,
如果是引用,
返回引用地址指向堆空间对象,
如果是常量,
直接返回常量池常量
(2)如果不存在,
2.1将当前对象引用复制到常量池,并且返回的是当前对象的引用
String a1 = "AA";
System.out.println(a1 == a1.intern()); //true
String a2 = new String("B") + new String("B");//a2 堆中
a2.intern();// 把堆中a2的地址放入常量池
String a3 = new String("B") + new String("B&#