StringBuffer

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)