JAVA学习笔记-StringBuilder和StringBuffer

StringBuilder和StringBuffer是可变字符序列

区别:

StringBuilder的线程不安全,但是效率高。

StringBuffer的线程安全,但是效率低。

StringBuilder:

StringBuilder sb = new StringBuilder(); //这里初始化一个默认长度16的char数组

StringBuilder sb = new StringBuilder(32); //这里初始化一个长度为32的char数组

StringBuilder sb = new StringBuilder("abcd");//这里初始化一个长度为4+16=20的char数组。value[]={'a','b','c','d',\u0000,\u0000...}

sb.append("edf"); //value[]={'a','b','c','d','e','d','f',\u0000,\u0000...}

方法链:

sb.append("edf").append("ghi").append("jkl");//因为append方法里面返回值为retuen this;所以前面的sb.append("edf")可以被看作为sb,从而实现方法链!

System.out.println(sb);

StringBuilder gh = new StringBuilder("a");//但是这里有个问题,如果i<n,n足够大的情况下,是不是超出了StringBuilder的有效范围了呢?(这里的有效范围为a+16=17)

  for(int i=0;i<10;i++){

    gh.append(i);

  }

System.out.println(gh);  //这样的话,从始至终只生成了2个对象,很好的解决了之前的String类的资源浪费的问题。

posted @ 2016-11-11 15:58  iamAnonymous  阅读(197)  评论(0编辑  收藏  举报