黑马程序员技术交流社区

标题: 字符串缓冲区StringBuffer [打印本页]

作者: 18923420612    时间: 2016-9-8 21:18
标题: 字符串缓冲区StringBuffer
一、StringBuffer

        a.String是不可变的字符序列
          StringBuffer是线程安全的可变字符序列,
        b.StringBuffer的构造方法:
                public StringBuffer():无参构造方法
                public StringBuffer(int capacity):指定容量的字符串缓冲区对象
                public StringBuffer(String str):指定字符串内容的字符串缓冲区对象
                public int capacity():返回当前容量。        理论值(不掌握)
                public int length() : 返回长度(字符数)。实际值
        c.添加功能
                public StringBuffer append(String str):
                        可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身
                public StringBuffer insert(int offset,String str):
                        在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身
        d.删除功能
                public StringBuffer deleteCharAt(int index):
                        删除指定位置的字符,并返回本身
                public StringBuffer delete(int start,int end):
                        删除从指定位置开始指定位置结束的内容,并返回本身
        e.替换功能反转功能
                A:StringBuffer的替换功能
                public StringBuffer replace(int start,int end,String str):
                        从start开始到end用str替换
                B:StringBuffer的反转功能
                public StringBuffer reverse():
                        字符串反转
        f.截取功能
                A:StringBuffer的截取功能
                public String substring(int start):
                        从指定位置截取到末尾
                public String substring(int start,int end):
                        截取从指定位置开始到结束位置,包括开始位置,不包括结束位置
                B:注意事项
                        注意:返回值类型不再是StringBuffer本身

        g.        A:String -- StringBuffer
                        a:通过构造方法
                        b:通过append()方法
                B:StringBuffer -- String
                        a:通过构造方法
                        b:通过toString()方法
                        c:通过subString(0,length);
        h.面试题
                String,StringBuffer,StringBuilder的区别
                        StringBuffer和StringBuilder的区别
                        StringBuffer是jdk1.0版本的,是线程安全的,效率低
                        StringBuilder是jdk1.5版本的,是线程不安全的,效率高
                String和StringBuffer,StringBuilder的区别
                        String是一个不可变的字符序列
                        StringBuffer,StringBuilder是可变的字符序列

二、Arrays类
        a.        public static String toString(int[] a)
                public static void sort(int[] a)
                public static int binarySearch(int[] a,int key)

三、包装类
        a.        byte                         Byte
                short                        Short
                int                                Integer
                long                        Long
                float                        Float
                double                        Double
                char                        Character
                boolean                        Boolean

        b.构造方法
                public Integer(int value)
                public Integer(String s)

        c.        A:int -- String
                        a:和""进行拼接
                        b:public static String valueOf(int i)
                        c:int -- Integer -- String(Integer类的toString方法())
                        d:public static String toString(int i)(Integer类的静态方法)
                B:String -- int
                        a:String -- Integer -- int
                        b:public static int parseInt(String s)

        d.        自动装箱:把基本类型转换为包装类类型    Integer ii = 100;
                自动拆箱:把包装类类型转换为基本类型         ii += 200;

                128到127是byte的取值范围,如果在这个取值范围内,自动装箱就不会新创建对象,而是从常量池中获取
                 如果超过了byte取值范围就会再新创建对象

       

















                1.需求:把数组中的数据按照指定个格式拼接成一个字符串
                举例:
                        int[] arr = {1,2,3};       
                输出结果:
                        "[1, 2, 3]"
                用StringBuffer的功能实现



                2.需求:把字符串反转
                举例:键盘录入"abc"               
                输出结果:"cba"
                用StringBuffer的功能实现       

                3.冒泡排序

                4.选择排序

                5.二分查找




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2