javaSE知识点总结——字符串

(一)字符串存储的内存分析

public static void main(String[] args) {
        String str1 = "hello";
        String str2 = new String("hello");
        System.out.println(str1 == str2);//false
        String str3 = "hello";
        System.out.println(str1 == str3);//true
    }

javaSE知识点总结——字符串_第1张图片

public static void main(String[] args) {
        String str1 = "hello";
        String str2 = "hel"+"lo";
        System.out.println(str1 == str2);//true
        String str3 = new String("hel")+"lo";
        System.out.println(str1 == str3);//false
    }

javaSE知识点总结——字符串_第2张图片
(二)intern
1.从现象上看
intern()是手动入池。
2.从内存来看
当前的这个字符串在常量池当中是否存在?如果存在,把常量池当中的引用赋值给当前的引用类型变量。
javaSE知识点总结——字符串_第3张图片
(三)String和StringBuffer及StringBuilder
1.String的拼接会产生大量的临时对象,StringBuilder和StringBuffer不会。
2.String拼接会被优化为StringBuilder的append().
3.后者当中有一些方法是String不具备的。逆置方法。

(四)StringBuffer和StringBuilder的区别
StringBuffer是线程安全的一般用于多线程,StringBuilder一般用于单线程。
javaSE知识点总结——字符串_第4张图片javaSE知识点总结——字符串_第5张图片

你可能感兴趣的:(javaSE知识点总结——字符串)