美文网首页
java 基础知识点2-String

java 基础知识点2-String

作者: liwsh | 来源:发表于2021-03-15 14:03 被阅读0次

    1string,Stringbuffer,StringBuilder

    String 线程安全,不可修改继承。操作不当大量临时字符串
    StringBuffer 线程安全 synchronize修饰
    StringBuilder 非线程安全

    2 容量问题

    StringBuffer和StringBuilder底层是char数组,默认是16的长度,如果频繁扩容会导致大量的数组拷贝

    3 字符串缓冲

    字符串常量池,可以缓存很多字符串,规避程序创建太多重复的字符串,浪费内存。创建完字符串后,调用intern方法会将字符串添加到缓存。但是不推荐调用intern方法,因为jdk1.6字符串常量池在持久代,只要full gc才会回收。会导致频繁full gc。jdk1.8之后G1垃圾回收可以指定参数-XX:+useStringDepulication进行字符串去重

    4 jdk1.9改变

    string在jdk1.9由char数组改为了byte数组,节约内存。因为一般的字符一个byte就可以表示了。

    相关文章

      网友评论

          本文标题:java 基础知识点2-String

          本文链接:https://www.haomeiwen.com/subject/trqzqltx.html