学院网站建设目的,那个公司搭建网站,卖域名出去客户犯法怎么办,手机网站宽度是多少(1)为什么需要StringBuffer
由于String的内容是不可变的#xff0c;在频繁操作字符串的应用中#xff0c;导致String对象泛滥#xff0c;不断的被创建和销毁#xff0c;占用大量的内存和CPU时间。 例如#xff0c;将十万个A连成一个大的字符串。代码如下: 这…(1)为什么需要StringBuffer
由于String的内容是不可变的在频繁操作字符串的应用中导致String对象泛滥不断的被创建和销毁占用大量的内存和CPU时间。 例如将十万个A连成一个大的字符串。代码如下: 这将创建100000个对象其中有99999个对象是临时对象是计算的中间结果。JVM需要花费大量的内存来存放也需要花费大量CPU时间来回收对象。 因此通常要使用可变的字符串缓冲区类(StringBuffer) 来完成类似的工作: 这样只需要创建一个StringBuffer和一个String对象就行了。 (3)常用方式 运行结果 (4)方法 StringBuffer stringBuffer new StringBuffer();stringBuffer.append(abcdex);System.out.println(stringBuffer); //abcdex//返回当前容量int capacity stringBuffer.capacity();System.out.println(capacity); // 16//返回长度(字符数)int length stringBuffer.length();System.out.println(length);//不会影响之后的stringBuffer本身//截取开始到结尾的字符串包括开头不包括结尾String substring stringBuffer.substring(0, 3);System.out.println(substring); //abc//从指定位置截取到末尾String substring2 stringBuffer.substring(3);System.out.println(substring2); //dex//会影响之后的stringBuffer本身//删除指定位置的字符并返回本身StringBuffer deleteCharAt stringBuffer.deleteCharAt(0);System.out.println(deleteCharAt); // bcdex//删除从指定位置开始到结束的内容并返回本身StringBuffer delete stringBuffer.delete(0, 3);System.out.println(delete); // ex//从开始到结尾用指定字符串替换StringBuffer replace stringBuffer.replace(0, 3, A**);System.out.println(replace); //A**//字符串反转StringBuffer reverse stringBuffer.reverse();System.out.println(reverse); //**A//替换指定位置的字符stringBuffer.setCharAt(0, T);System.out.println(stringBuffer); //T*A//在指定的位置(字符个数后)添加新的文本对象StringBuffer insert stringBuffer.insert(2, xx);System.out.println(insert); //T*xxA