StringBuffer和StringBuider区别和使用

129 阅读1分钟


StringBuffer和StringBuider 的函数:区别

  String           -->一个不可改变的字符序列
Stringbuffer    -->是一个线程安全的线程安全  因为线程安全所以效率低一些   一般用来用存在多线程使用
StringBuilder  -->是一个线程不安全的    所以效率高一点   一般用来写不存在多线程的时候用

 1.如果需要频繁修改就不用string
2.stringbuffer和stringbuilder默认数组长度都是16  vait【16】
3.如果超过16那么扩容的是原来的2倍+2,并且吧该值赋值给新的数组
4. String和StringBuffer和StringBuider在java9新特性中采用的是byte[]数组,在java9以前采用的都是char[]类型数组(节约空间)
5.如果已知长度推荐使用  StringBuilder(40);以免后面还需要重新赋值给新的数组

Stringbuffer和StringBuider 的函数: 增删改查

        StringBuilder st=new StringBuilder(40); -->设置默认初始值字符串长度为40
st.append("niha1o");         -->追加在后面添加  增
st.delete(0,2);             -->删除下标0到2的值  删
st.replace(4,6,"a");       -->在4,7位置改成a  改
st.charAt(12);            -->查询位置为12后面的
st.insert(12,"你好");     --> 在12位后插入数据 插
st.length();            -->返回数组里面存储的值的长度  不是数组的长度
st.setCharAt(4,'a');   --> 在4的位置修改一个字符
int a=st.indexOf("iha1o"); -->查找这句话在此文章中出现的位置返回下标i所在的位置