常用类--StringBuffer类--StringBuffer类概述及其构造方法

StringBuffer类概述及其构造方法

程序示例

/*
    StringBuffer(Java.lang包下):	
        1、线程安全的(被同步关键字synchronized修饰的)
            不安全:就是存在同步操作同一数据的行为,效率高
            安全的:没有同步操作,效率不高

            在开发中,效率和安全一直都是很难平衡的事情。
            生活中有哪些线程安全的例子:
                线程安全的例子: 银行的一些业务,医院取号,电影院售票
                线程不安全的例子:视频会员,博客评论

        2、线程安全,可变的字符序列。
        3、字符串缓冲区就像一个String ,但可以修改。
        4、在任何时间点,它包含一些特定的字符序列,但可以通过某些方法的调用来更改序列的长度和内容。

       简单记忆:StringBuffer是一个线程安全的可变字符串

   StringBuffer与String的区别:
        1、StringBuffer的长度和内容都是可以发生改变的,String不可变
        2、String每创建一个新的字符串都会开辟一个新的内存空间
            StringBuffer可以提前给出一个容量,可以进行字符串的拼接,而不会重新开辟

   StringBuffer的构造方法:
        StringBuffer()
            构造一个没有字符的字符串缓冲区,初始容量为16个字符。
        StringBuffer(int capacity)
            构造一个没有字符的字符串缓冲区和指定的初始容量。
        StringBuffer(String str)
            构造一个初始化为指定字符串内容的字符串缓冲区。

  StringBuffer中的方法:
        public int capacity() 返回当前容量
*/

public class StringBufferDemo1 {
    public static void main(String[] args) {
      
        //StringBuffer() 构造一个没有字符的字符串缓冲区,初始容量为16个字符。
        StringBuffer sb1 = new StringBuffer();
            //不是地址值,说明StringBuffer重写了toString()方法
        System.out.println("sb1:" + sb1);//输出:sb1:
      
        System.out.println("**************************************************");
      
            //public int capacity() 返回当前容量
            //查看StringBuffer的容量
        int capacity = sb1.capacity();
        System.out.println("StringBuffer的容量: " + capacity);//16
            //StringBuffer中字符串的长度
        int length = sb1.length(); 
        System.out.println("StringBuffer中字符串的长度: " + length);//0

        System.out.println("**************************************************");

        //StringBuffer(int capacity) 构造一个没有字符的字符串缓冲区和指定的初始容量。
        StringBuffer sb2 = new StringBuffer(50);
        System.out.println("sb2:" + sb2);//输出:sb2:
        int capacity2 = sb2.capacity();
        System.out.println("StringBuffer2的容量: " + capacity2);//输出:50
        int length2 = sb2.length();
        System.out.println("StringBuffer2中字符串的长度: " + length2);//输出:0

        System.out.println("**************************************************");
      
        //StringBuffer(String str) 构造一个初始化为指定字符串内容的字符串缓冲区。
        StringBuffer sb3 = new StringBuffer("hello");
        System.out.println("sb3:" + sb3);
        int capacity3 = sb3.capacity();
            //在初始的”hello“字符之后再构造一个初始容量为16的缓冲区
        System.out.println("StringBuffer3的容量: " + capacity3); //输出:16+5
        int length3 = sb3.length(); 
        System.out.println("StringBuffer3中字符串的长度: " + length3);//输出:5
  }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值