A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 星空仰望heaven 中级黑马   /  2016-4-10 23:48  /  434 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuilder
问题:String在字符串拼接时,会产生中间垃圾,占内存
理论解决:1、创建对象,里面有一个容器
        2、拼接字符串,都是添加进容器
        3、将容器中的数据取出,变成字符串
由此推出:StringBuilder
代码编写:
        1、创建StringBuilder对象
                sb1 = new StringBuilder(); ----- 容器16字符
                sb2 = new StringBuilder(36);---- 容器36字符
                sb3 = new StringBuilder("ABC");-- 容器内有abc加16个空位
        2、对容器进行数据操作
            增:
                append(任意数据) --- 追加
                insert(int index , 数据) --- 插入       
            删:
                deleteCharAt(int index) ---- 删除指定索引字符       
                delete(int start, int end)       
            替换功能:
                public StringBuilder replace(int start,int end,String str) 将[start,end)替换成 str
            反转功能         
                public StringBuilder reverse() ------- 可能用到
            截取功能 --- 注意返回值类型
                public String substring(int start) ------ 从start到最后
                public String substring(int start,int end)        ---- [start,end)
        3、将容器中的数据取出,变成字符串
                String toString();
                注意:A、StringBuilder使用了链式设计模式
                      B、StringBuilder里面的容器(char[])可以自己增长
        StringBuilder使用时机:字符串循环拼接时,建议自己创建SB对象       
        String 和 StringBuilder 转化:
                String ----> StringBuilder
                        new StringBuilder(String);
                StringBuilder---->String
                        A、SB.toString();
                        B、new String(SB);
重点:StringBuffer与StringBuilder/String比较
        1、String与StringBuffer/Builder区别:
        后者相当于是容器,在字符串拼接时,可以避免产生中间垃圾
        也就是说:String是一个不可变的字符序列,StringBuffer是一个可变的字符序列
        2、StringBuffer 与 StringBuilder区别:
        相同点:StringBuffer与StringBuilder实现原理与实现方法基本一致       
                  查看源代码二者实现基本一致
        不同点:
        (1)StringBuffer的成员方法 synchronized(多线程的概念)
        (2)StringBuffer是jdk1.0版本的,是线程安全的,效率低
         StringBuilder是jdk1.5版本的,是线程不安全的,效率高
       

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马