StringBuild的本质也是一个数组。但是该数组是一个动态可扩容的数组。
具体详见代码:
public class StringBuildertest {
/**
* StringBuild的本质也是一个数组
* 但是该数组是一个动态可扩容的数组
* @param args
*/
public static void main(String[] args) {
char[] str=new char[]{'q','w','e','r'};
String st=new String("zxc");
StringBuilder s1=new StringBuilder();
/**
* 首先是类StringBuilder中的添加字符的函数append
*/
/*
* append:
* 当参数为一个boolean,如果该参数是true,则就将该参数True通过动态可扩容数组,最后返回True字符串
*/
s1.append(true);
System.out.println(s1.toString());//true
//在True的基础之上在添加一个字符c,则最后输出的字符串是Truec
s1.append('c');
System.out.println(s1.toString());//truec
/*
* 给append传的参数是一个字符型数组
* 该源码是先判断传进来的字符数组中的字符的个数加上原来存在的字符的个数与之前定义的容量作比较,
* 如果小于,直接添加;如果大于,需要动态扩容
*/
s1.append(str);
System.out.println(s1.toString());//truecqwer
/*
* 参数是一个对象
* 源码首先是判断该对象是否为空,然