美文网首页
第5讲:String StringBuffer

第5讲:String StringBuffer

作者: _River_ | 来源:发表于2020-11-24 00:24 被阅读0次

String:Immutable的典型实现 无法对原生数据进行修改,拼接和裁剪都会产生新的String对象。

StringBuffer:线程安全 通过 synchronized实现

StringBuilder:线程不安全   去掉了synchronized 提高效率

StringBuffer 与  StringBuilder 两者都继承了 AbstractStringBuilder

AbstractStringBuilder 扩容算法:当前容量乘2加1(newCapacity) 与需要的容量(minimumCapacity)比较,如果大于则为newCapacity 

如果小于最小的容量则直接扩容成 minimumCapacity

String字节缓存:

在JDK6版本使用intern()方法  放在permGen(永久代),不会被FullGC之外的垃圾回收到,使用不当会被OOM关顾。

其之后版本  缓存会被放入堆中  在JDK8后放入到  MetaSpace(元数据区)

main方法中JVM参数 :

-XX:+PrintStringTableStatistics   -XX:StringTableSize=N  -XX:+UseStringDeduplication

-XX:+PrintCompilation -XX:+UnlockDiagnosticVMOptions -XX:+PrintInlining

相关文章

网友评论

      本文标题:第5讲:String StringBuffer

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