Java学习笔记——StringBuilder

StringBuilder类

String类是一个不可变类。

在对字符串进行拼接操作时,每次拼接都会构建新的String对象,耗时并且浪费时间。可以采用StringBuiler进行代替。

StringBuilder —— 可变的字符序列,可变的字符串类。可以看做是一个容器,这里的可变是指StringBuilder对象中的内容是可变的。

线程不安全,单线程操作字符串。


String和StringBuilder的区别:

String:内容是不可变的。
StringBuilder:内容是可变的。

StringBuilder 和StringBuffer 的区别:

StringBuffer  :可变类。线程安全。  

StringBuilder:可变类。非线程安全(不能同步访问)。

两者都可以进行多次修改,并且不产生新的使用对象。StringBuilder类相较于StringBuffer有速度优势。但在要求线程安全的情况下,必须使用StringBuffer。

小结

(1)如果要操作少量的数据用 String;

(2)多线程操作字符串缓冲区下操作大量数据 StringBuffer;

(3)单线程操作字符串缓冲区下操作大量数据 StringBuilder。


StringBuilder的构造方法:

  ( StringBuilder在java.lang 包下,可以不用导包。)

(快捷键:创建对象时自动补全对象: ctrl+alt+v (idea))

  •  public StringBuilder() —— 创建一个空白可变字符串对象,不含有任何内容。
 StringBuilder sB = new StringBuilder();
(虽然创建空白的可变字符串对象,但是可以通过sB.length() 对长度进行计算,计算的长度为0。)
  • public StringBuilder(String str) —— 根据字符串的内容,创建可变字符串对象。     
StringBuilder sB1 = new StringBuilder("str");      

StringBuilder的添加和反转方法:

  • public StringBuilder append(任意类型) —— 在字符串末尾添加数据,并返回对象本身StringBuilder对象本身。
        StringBuilder sB1 = new StringBuilder();
        sB1.append(4);
        sB1.append("123",1,2); //从下标1开始,下标2结束,插入一个,不包括下标2
        System.out.println(sB1);
  • public StringBuilder reverse() —— 返回逆序字符序列。
  sB1.reverse();
  System.out.println(sB1);

String和StringBuilder的相互转换

  • StringBuilder 转 String :   public String toString();
        StringBuilder sB2 = new StringBuilder("str");
        System.out.println(sB2);
        String str1 = sB2.toString();  //StringBuilder转string
        System.out.println(sB2.getClass()); //判断变量类型
        System.out.println(str1.getClass()); //判断变量类型
  • String 转 StringBuilder : public StringBuilder (String s) —— 通过StringBuilder的构造方法实现。
//String 转 StringBuilder
        String s = "hello world";
        StringBuilder sB3 = new StringBuilder(s);
        System.out.println(s);
        System.out.println(sB3);
        System.out.println(s.getClass()); //判断变量类型
        System.out.println(sB3.getClass()); //判断变量类型

  • 3
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值