AbstractStringBuilder类/StringBuilder/StringBuffer

     我们来看一下AbstractStringBuilder类
     

  •  这个抽象类不是public类 也无法new一个匿名类
  • 这个类是StringBuilder StringBuffer 的**直接父类**  可以说基本上这两个类实现的基本是父类里面定义的方法

基于第二点 我们就有必要来好好了解一下这个类 这让我们学习StringBuilder 和StringBuffer更加明细里面的细节

类的声明

abstract class AbstractStringBuilder implements Appendable, CharSequence
//该类实现了两个接口(行为)  同时也是这个抽象类的特征

//CharSequence (字符序列接口) 要实现  
     1.规定获取字符长度   int length();    
     2.规定字符串单个字符的查找,  char charAt(int index);     
     3.规定得到该字符串的子序列  CharSequence subSequence(int start, int end);
     4.重写了父类Object的toString()
//Appendable 定义添加的规则
     1.Appendable append(CharSequence csq) throws IOException; ---> 如何添加一个字符序列
     2. Appendable append(CharSequence csq, int start, int end) throws IOException; ---->  如何添加一个字符序列的一部分
     3.Appendable append(char c) throws IOException; --->  如何添加一个字符
 

 

成员变量

  char[] value;
 
  int count;
 
从这里可以看出与String的区别  String 是final 这里定义的 是一个动态数组  可供我们灵活的在原数组上操作
 

构造方法

 

 AbstractStringBuilder() {}
 
 AbstractStringBuilder( int capacity){value = new char[capacity];}
 
 两种构造方法 提供了一个初始化容量的构造方法
 

常用方法

 

/*
  public int length()
  返回存储的实际长度
 */

 /*
     public int capacity()
     返回valve[]数组当前存储的实际长度,对于数组来说  就是初始化的长度  在没有进行扩容之前不会改变
  */

 /*
     public void ensureCapacity(int minimumCapacity)
     用来确保value数组的容量是否够用,
     如果不够用时,就会调用newCapacity(minimumCapacity)方法扩容,参数为需要的容量
  */

 /**
  *
  * private int newCapacity(int minCapacity)
  * 扩容方法  扩容是原来的两倍加2
  */

 /*
    处理边界容量  如果进入到该方法 最小容量为Integer.MAX_VALUE - 8   但不超过Integer.MAX_VALUE
     private int hugeCapacity(int minCapacity)
  */

 /*
     public void trimToSize()
     如果value数组的容量有多余的,那么就把多余的全部都释放掉
  */

 /*
     public void setLength(int newLength)
     设置新的长度  容量不够 就扩大容量  用0填充
  */
 StringBuilder sb4 = new StringBuilder("nihao");
 /*
     public char charAt(int index)
     字符串单个字符的查找
  */
 /*
     public int codePointAt(int index)
     返回指定索引处的字符
  */

 /*
       public void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin)
       把value[] 数字加到目标数字的detBegin后面
  */
 /*
      public void setCharAt(int index, char ch)

      指定索引处的值为ch
  */
 /*
     public AbstractStringBuilder replace(int start, int end, String str)
      换目标 此方法 替换一个位置的字符串 且在有必要的情况下 扩容容纳指定字符串
  */
 /*
         public String substring(int start)---->得到一个子串
         public CharSequence subSequence(int start, int end)------> 得到一个子序列
  */

 /*
         public AbstractStringBuilder insert(int offset, Object obj)
         在value[] 的offset 插入String.valueOf(obj)
  */
 /*
         public int indexOf(String str)
         在value[]中找字符串str,若能找到,返回第一个字符串的第一个字符的下标
  */

 /*
         public AbstractStringBuilder reverse()
         将value给倒序存放(注意改变的就是本value,在本value上面反转)
  */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值