StringBuilder
Posted PoeticalJustice
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了StringBuilder相关的知识,希望对你有一定的参考价值。
1 package cn.bjsxt.stringbuilder; 2 /** 3 * String 不可变字符序列 4 * StringBuilder StringBuffer都是是可变字符序列 5 * 区别在于StringBuilder(线程不安全,效率高) StringBuffer是(线程安全,效率低) 6 * @author Administrator 7 * 8 */ 9 public class Test01 { 10 11 public static void main(String[] args) { 12 StringBuilder sb = new StringBuilder();//字符数组长度默认16,因为父类构造方法设置的是16 13 StringBuilder sb1 = new StringBuilder(32);//字符数组长度默认32 14 StringBuilder sb2 = new StringBuilder("abcd");//字符长度="abcd"+字符数组长度默认16=20个字符 15 // 因为父类里面方法重写是16+字符串长度 16 sb2.append("efg");//在字符创后边添加字符串 17 sb2.append(true);//还可以添加布尔值 18 System.out.println(sb2); 19 20 sb2.append(false).append(123).append(1.0);//因为 这个方法 return this 所以可以一直调用 21 System.out.println(sb2); 22 23 System.out.println("######################"); 24 25 StringBuilder gh = new StringBuilder("a");//长度"a"+16=17的字符 为什么下面循环20次却可以呢?建新数组替换老数组扩容 26 //扩容大小(17+1)*2 老数组 没人引用 会被 垃圾回收 27 //循环里面调用append() 循环添加字符 //看append()源码发现 28 for(int i=0;i<20;i++){ 29 gh.append(i); 30 } 31 System.out.println(gh); 32 }
以上是关于StringBuilder的主要内容,如果未能解决你的问题,请参考以下文章
StringStringBuffer/StringBuilder 面试题
[C#][代码收集] - StringBuilder类的使用总结