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所在的位置