美文网首页
StringBuffer

StringBuffer

作者: 想飞的键盘手 | 来源:发表于2018-12-20 19:17 被阅读0次

    StringBuffer类的概述

    A : StringBuffer类概述

    • 线程安全的可变字符序(同步的) (速度慢些)
    • StringBuilder 是线程不安全的不同步的 与 StringBuffer 支持所有相同的操作(StringBuilder速度快些)
      B : String 和 StringBuffer的区别
      • String 是一个不可变的字符序列
      • StringBuffer 是一个可变字符序列

    StringBuffer构造方法

    A : StringBuffer构造方法

    • public StringBuffer() : 无参构造
    • public StringBuffer(int capacity) : 指定容量的字符串缓冲区对象
    • public StringBuffer(String str) : 指定字符串内容的字符串缓冲区对象

    一般都用第一第三种 只要满了自动扩展

    StringBuffer 的append 方法

    public StringBuffer append(String str);
    可以把任意类型数据添加到字符串缓冲区里面,并返回字符串缓冲区本身

    当调用append方法时,不会再创建一个新的对象,而是在原字符串缓冲区直接进行添加操作,不用记录返回值

    StringBuffer 的insert方法

    public StringBuffer insert(int offset , String str);
    在指定位置把任意类型的数据插入到字符串缓冲区里面,并返回字符串缓冲区本身

    StringBuffer 的Delete方法

    public StringBuffer deleteCharAt(int index);
    删除指定位置字符,并返回本身
    public StringBuffer delete(int start , int end);
    删除从start 开始到end 结束的内容,并返回本身
    包含头 不包含尾 左闭右开

    StringBuffer 的replace方法

    public StringBuffer replace (int start,int end , String str);
    从start开始 到end用str替换 返回字符串缓冲区本身

    StringBuffer 的 reverse方法

    public StringBuffer reverse();
    字符串反转 , 返回本身

    StringBuffer 的截取功能

    public String substring(int start);
    从指定位置截取到末尾
    public String substring(int start , int end);
    从指定位置开始到结束位置 包含头不包含尾 左闭右开

    注意 返回值不再是StringBuffer本身 而是String 类型 StringBuffer本身不会被改变

    StringBuffer 和 String 的相互转换

    String 转换为 StringBuffer
    • 通过构造方法
    • 通过append()方法
    StringBuffer 转换为 String
    • 通过构造方法
    • 通过toString方法
    • 通过subString(0,length)方法

    将数组转换为字符串

    把数组转换成字符串

    如图所示 用StringBuffer来做更好 用String 和 + 来做 在堆内存中会产生 arr.length-1个String 对象垃圾

    StringBuffer 和 StringBuilder 的区别

    StringBuffer 和StringBuilder 中的方法是一模一样的

    面试题 区别

    StringBuffer 和 StringBuilder 的区别

    • StringBuffer是jdk1.0版本的,是线程安全的,效率低
    • StringBuilder是jdk1.5版本的,是线程不安全的,效率高

    区别就在于安不安全 同不同步

    String 和 StringBuffer , StringBuilder 的区别

    • String 是一个不可变字符序列
    • StringBuffer 和 StringBuilder 都是可变的

    String 和 StringBuffer作为参数传递

    • String 类虽然是引用类型,但是他作为参数传递 的时候和基本数据类型是一样的 因为String对象一旦被初始化 其值不能改变

    • StringBuffer 和引用数据类型一样 在方法中变化后 返回调用处也会保持变化

    Java 中些swap 方法

    void swap(int [ ] arr,int i , int j);
    arr相当于指针的作用

    Array类的方法使用(这是一个工具类 里面方法都是静态的 并且私有化了构造)

    • public static String toString (int [] arr)
      数组转化成字符串
    • public static void sort(int[] arr)
      数组排序
    • public static binarySearch(int[] arr , int value)
      数组查找(用二分查找实现 使用前必须有序)
      如果包含在数组中,则返回搜索键的索引;否则返回(-(插入点)-1).插入点被定义为将键插入数组的那一点(第一个大于此键元素的点)

    相关文章

      网友评论

          本文标题:StringBuffer

          本文链接:https://www.haomeiwen.com/subject/luoekqtx.html