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

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

  • 构造器
StringBuffer和StringBuilder的构造器都有三个,分别如下:
StringBuffer的构造器:
  1. new StringBuffer(int capacity)
  2. new StringBuffer(String str)
  3. new StringBuffer(CharSequence seq)
StringBuilder的构造器:
  1. new StringBuilder(int capacity)
  2. new StringBuilder(String str)
  3. 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());}}执行结果如下图所示:
stringbuffer截取字符串的下标 解析springmvc工作流程

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

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

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

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

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

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

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

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

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

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

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

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

文章插图
【stringbuffer截取字符串的下标 解析springmvc工作流程】?自此,关于StringBuffer和StringBuilder的介绍就已经算是结束了 。

    推荐阅读