Java源码___AbstractStringBuilder抽象类(一)

java.lang.AbstractStringBuilder分析摘要:
<1>简介
<2>常量和变量
<3>构造器方法
<4>length()方法
<5>capacity()方法
<6>ensureCapacity(int minmumCapacity)

1.简介

 类介绍:
AbstractStringBuilder是一个抽象类,它是StringBuffer类和StringBuilder类的父类。它是一个易变的字符序列。实现可修改字符串,在任何时间点,他包含一些特定的字符序列,但是序列的长度和字符可以通过特殊的方法去修改。且如果往构造方法中丢入实参null的话,会抛出NullPointerException异常。

abstract class AbstractStringBuilder implements Appendable, CharSequence

继承关系:继承关系
这个方法是的属性有:abstract 抽象的、default默认包访问权限。

实现Appendable接口:Appendable实现类对象能够被添加char序列和值。

实现CharSequence接口:该接口中有包含一些操作char字符的方法。


 
2.常量和变量介绍
 这是该抽象类中的变量介绍。

//这个char数组被用作字符仓库
char[] value;

//使用字符的数量
int count;

//要分配数组的最大长度。
//如果超过这个界限,会导致OutOfMemoryError:请求数组大小超过限制
private static final int MAX_ARRAY_SIZE = Integer.MAX_VALUE - 8;

3.构造器方法
 这是AbstractStringBuilder类的构造方法。

//无参构造器方法对子类的序列化是必需的
AbstractStringBuilder(){

}

//创建指定容量的AbstractStringBuilder类
AbstractStringBuilder(int capacity){
    value = new char[capacity];
}

这个方法是的属性有:default默认包权限。
参数:capacity int类型,指定abstractStringBuilder的容量大小
异常:NullPointerException
异常说明:如果capacity传值为null,则会抛出此异常。


 
4.length()方法

 该方法获取字符长度。

public int length(){
    return count;
}

这个方法是的属性有:public公有。

返回值:int类型
返回值说明:返回一个count,而count是记录该该抽象字符的字符数。

5. capacity()方法

 该方法会返回字符生产类的容量大小。

public int capacity(){
    return value.length;
}

这个方法是的属性有:public公有。
返回值:int 类型
返回值说明:返回该类的字符容量大小。

6. ensureCapacity(int minimumCapacity)
 该方法是个会保证类的容量大小的方法。

public void ensureCapacity(int minmumCapacity){
    if(minmumCapacity > 0){
        ensureCacityInternal(minmumCapacity);
    }
}

//该方法不同步。如果代码由于数组太大而溢出为非正,该方法会抛出OutOfMemoryError
private void ensureCapacityInternal(int minmumCapacity){
    if(minmumCapacity-value.length > 0){
        value = Array.copyOf(value, newCapacity(minmumCapacity));
    }
}

//
private int newCapacity(int minCapacity){
    int newCapacity = (value.length << 1) + 2;
    if(newCapacity - minCapacity < 0){
        newCapacity = minCapacity;
    }
    return (newCapacity <= 0 || MAX_ARRAY_SIZE - newCapacity<0)
                ? hugeCapacity(minCapacity) 
                : newCapacity;
}

private int hugeCapacity(int minCapacity){
    if(Integer.MAX_VALUE - minCapacity <0){
        throw new OutOfMemoryError();
    }
    return (minCapacity > MAX_ARRAY_SIZE)
                ? minCapacity : MAX_ARRAY_SIZE;
}

这个方法是的属性有:public公有。
参数:minmumCapacity 最小容量
参数说明:int类型,最小容量数值。用于和该类的容量做比较。
方法说明:如果该类的容量大于minmumCapacity,则返回该对象。如果小于minmumCapacity,则创建一个新的容量。

方法注意:
<1>如果该类的容量大于minmumCapacity,则返回该对象。如果小于minmumCapacity,则创建一个新的容量。
<2>新建的容量为原来的两倍+2。

猜你喜欢

转载自blog.csdn.net/pseudonym_/article/details/80507442