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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© vvvvvc 中级黑马   /  2016-6-2 01:19  /  595 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

StringBuffer
        1、是一个可变的字符序列
        2、是线程安全的

        String str1 = "abc"
        String str2 = "d"
        String str = str1 + str2
        String str = str + "e"
        "abc"+"d"


        构造方法:
                1、空参构造
                2、传入一个int类型的数据,指定初始容量
                3、传入一个String,创建一个指定内容的StringBuffer(使用最多)


        成员方法:
                1、length(),统计对象中字符的个数,也就是实际长度
                2、capacity(),统计容器的大小



        添加功能:
                1、append功能:在末位加 sb.append()
                2、insert功能:在中间插sb.insert(3,"abc")
                        "abcde"


        删除功能:
                1、deleteCharAt(int index)
                2、delete(int start, int end)

        替换功能:
                replace(0,3,"a")
        反转
                reverse();

        截取功能:
                subString(int index);
                subString(int start, int end);包含头不包含尾

                强调:返回值类型String,而本身没有改变StringBuffer

        String转StringBuffer
                1、构造方法
                2、append方法

        StringBuffer转String:本质上都是调用构造方法
                1、构造String(StringBuffer sb)
                2、toString方法
                3、subString()

       
        数组转字符串:
                1、array2String
                        dom4j
                        log4j
                        log4cxx
                        internationalization
                        i18n

                2、append,可以节省一些内存
                3、之前使用的是拼接,底层也是创建StringBuffer来拼接


        String、StringBuffer、StringBuilder区别:
                1、String是一个不可变的字符序列
                2、StringBuffer、StringBuilder可变,
                        StringBuffer是1.0版本就出现了,是线程安全的,效率低下
                        StringBuilder是1.5版本出现的,线程不安全的,效率高

       
        String和StringBuffer作为参数传递的不同
                1、结论:String作为参数传递的时候,可以当做基本数据类型,因为String对象不可变
                2、本质:搞清楚改变的是栈内存中的引用还是堆内存中的对象的数据


0 个回复

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