Java学习笔记——StringBuilder

导读:本篇文章讲解 Java学习笔记——StringBuilder,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

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()); //判断变量类型

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/69101.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!