解析springmvc工作流程 stringbuffer截取字符串的下标


Java中表示字符串的有三个类:String、StringBuffer和StringBuilder 。其中,String的长度是不可变的,而StringBuffer和StringBuilder是长度可变的 。对于StringBuffer和StringBuilder来说,两者的API几乎一模一样,因为两者有共同的父类:AbstractStringBuilder 。区别在于StringBuffer的大部分方法都是被synchronized关键字修饰,是线程安全的,而StringBuilder则与其相反 。
所以本篇就对StringBuffer和StringBuilder类比着来进行介绍 。
构造器StringBuffer和StringBuilder的构造器都有三个,分别如下:
StringBuffer的构造器:

    new StringBuffer(int capacity)new StringBuffer(String str)new StringBuffer(CharSequence seq)
StringBuilder的构造器:
    new StringBuilder(int capacity)new StringBuilder(String str)new StringBuilder(CharSequence seq)
对比两者构造器发现,它们对构造器的重载都施行了同样的方式,可以传入一个整数的容量,可以传一个字符串值,甚至可以传一个字符序列的对象 。对于Java来说,常用的字符序列对象就是我们认知中的String,StringBuffer和StringBuilder 。关于StringBuilder和StringBuffer的使用的示例代码如下所示:
public class StringTest {public static void main(String[] args) throws IOException {// 初始化一个容量为16,但没有值的空StringBuffer对象StringBuffer strBuffer = new StringBuffer(16);System.out.println("strBuffer:"strBuffer", 容量为:"strBuffer.capacity()", 长度为:"strBuffer.length());// 初始化一个容量为16,但没有值的空StringBuilder对象StringBuilder strBuilder = new StringBuilder(16);System.out.println("strBuilder:"strBuilder", 容量为:"strBuilder.capacity()", 长度为:"strBuilder.length());// 根据一个字符串初始化一个StringBuffer对象StringBuffer strBuffer2 = new StringBuffer("how are you");System.out.println("strBuffer2的值为:"strBuffer2", 容量为:"strBuffer2.capacity()", 长度为:"strBuffer2.length());// 根据一个字符串初始化一个StringBuilder对象StringBuilder strBuilder2 = new StringBuilder("how old are you");System.out.println("strBuilder2的值为:"strBuilder2", 容量为:"strBuilder2.capacity()", 长度为:"strBuilder2.length());// 根据一个字符序列对象如StringBuilder来初始化一个StringBuffer对象StringBuilder strBuffer3 = new StringBuilder(strBuilder);System.out.println("strBuffer3的值为:"strBuffer3", 容量为:"strBuffer3.capacity()", 长度为:"strBuffer3.length());//根据一个字符序列对象如StringBuffer来初始化一个StringBuilder对象StringBuilder strBuilder3 = new StringBuilder(strBuffer2);System.out.println("strBuilder3的值为:"strBuilder3", 容量为:"strBuilder3.capacity()", 长度为:"strBuilder3.length());}} 执行结果如下图所示:
拼接参数拼接参数常用的方法方法如下图:
也就是说,该方法可以拼接所有的基本数据类型和其对应的包装类型,字符数组、字符序列对象及其他的引用对象等 。

猜你喜欢