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结束,插入一个,不包括下标2System.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转stringSystem.out.println(sB2.getClass()); //判断变量类型System.out.println(str1.getClass()); //判断变量类型
  • String 转 StringBuilder : public StringBuilder (String s) —— 通过StringBuilder的构造方法实现。
//String 转 StringBuilderString 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()); //判断变量类型

Java学习笔记——StringBuilder相关推荐

  1. 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁

    什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...

  2. 2021-05-31以及2021-06-01(从136开始) JAVA学习笔记

    JAVA学习笔记 1学习易错点: 2 具体内容 112 构造方法 113 构造方法的注意事项 114 标准类的制作!!! 115 api string 118 string构造方法![在这里插入图片描 ...

  3. 《Java学习笔记(第8版)》学习指导

    <Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...

  4. 2022年Java学习笔记目录

    一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...

  5. java学习笔记:全部,txt版本

    java学习笔记:全部,txt版本 笔者注: 1.不知道怎么上传附件,所以就把txt文本内容全部贴在这里吧. 2.已经把txt版本的笔记上传到CSDN了,我没有设置索要积分才能下载,但是不知道为什么C ...

  6. Java 学习笔记 - 数组类型互转

    Java 学习笔记 - 数组类型互转 数组类型转换 字符串数组 to (Integer.Long.Double)列表 传统方式 Java8 Stream方式 数组 to 数组 字符串数组 to (in ...

  7. java学习笔记---5

    IO流 I〇流概述: lO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称.也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的: ...

  8. Java学习笔记(原创)

    Java学习笔记(原创) 2011-12-01 16:37:00|  分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...

  9. java学习笔记11--Annotation

    java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...

最新文章

  1. 感知不强又徒增功耗?为何今年5G手机也这么重视AI
  2. PHP版本区别5与7:性能 64位 运算符 输入类型 返回类型 匿名类;7改进1.变量存储空间2.数组结构3.函数调用机制
  3. Struts2 简介
  4. 第六章勘误以及Normalization算法不完整
  5. 2018 KubeCon + CloudNativeCon完美落幕,行云献力
  6. Vue.js 概述与 MVVM 模式
  7. 生成随机数 java
  8. [文摘20071008]全国软考相关-计算机技术与软件专业资格(水平)考试
  9. java调度问题的贪心算法_贪心算法——换酒问题
  10. Nginx 进程间通信
  11. 语言编出的程序怎么实装_程序员小白:编程语言到底该怎么选?
  12. java我的世界1.6.2_我的世界1.6.2
  13. My New Game2
  14. 关于webstorm更换主题
  15. sqlserver2000下载地址
  16. FPGA基础入门【15】开发板I2C温度传感器配置
  17. Lodop打印参数方法参考
  18. 关于Python中的编程,这篇阅读量预算10万+的文章可能是你见过的最完整的讲解
  19. ios个人小游戏开发者如何做到年收益过百万?
  20. 基线、底线、顶线、中线

热门文章

  1. 锐宝机器人_科沃斯太阳能电池板无水清洁机器人锐宝面世
  2. Komodo调试perl
  3. InterValue项目周报:20190401-20190407
  4. 制造行业基本成本核算过程
  5. 三.数据库(leaning)
  6. 基于头脑风暴优化的BP神经网络(预测应用) - 附代码
  7. B-实时测评系统算分
  8. 微信小程序学习4:小程序语法 - 事件绑定
  9. OLED屏实现任意位置绘制图形
  10. 安装完Anaconda python 3.8,降级python3.6方法