实例 求解 java String StringBuilder 底层原理?
样例如下:
String s1 = new StringBuilder("12").append("ab").toString();
System.out.println(s1.intern() == s1); //true
String s2 = new StringBuilder("ja").append("va").toString();
System.out.println(s2.intern() == s2); //false
String s3 = new StringBuilder().append("12ab").toString();
System.out.println(s3.intern() == s3); //false
问题:
1、s1 不应该是指向堆内存的地址吗? 为什么会与 s1.intern() 指向相同?
2、s1、s2 调用形式形同,结果不同?
3、s1、s3不同?看StringBuilder带String的构造方法,也是调用的append方法,不理解,求指教。
谢谢!!!