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结束,插入一个,不包括下标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相关推荐
- 0037 Java学习笔记-多线程-同步代码块、同步方法、同步锁
什么是同步 在上一篇0036 Java学习笔记-多线程-创建线程的三种方式示例代码中,实现Runnable创建多条线程,输出中的结果中会有错误,比如一张票卖了两次,有的票没卖的情况,因为线程对象被多条 ...
- 2021-05-31以及2021-06-01(从136开始) JAVA学习笔记
JAVA学习笔记 1学习易错点: 2 具体内容 112 构造方法 113 构造方法的注意事项 114 标准类的制作!!! 115 api string 118 string构造方法![在这里插入图片描 ...
- 《Java学习笔记(第8版)》学习指导
<Java学习笔记(第8版)>学习指导 目录 图书简况 学习指导 第一章 Java平台概论 第二章 从JDK到IDE 第三章 基础语法 第四章 认识对象 第五章 对象封装 第六章 继承与多 ...
- 2022年Java学习笔记目录
一.2022年Java任务驱动课程 任务驱动,统摄知识点:2022年Java程序设计讲课笔记 二.2022年Java学习笔记 (一)踏上Java开发之旅 Java学习笔记1.1.1 搭建Java开发环 ...
- java学习笔记:全部,txt版本
java学习笔记:全部,txt版本 笔者注: 1.不知道怎么上传附件,所以就把txt文本内容全部贴在这里吧. 2.已经把txt版本的笔记上传到CSDN了,我没有设置索要积分才能下载,但是不知道为什么C ...
- Java 学习笔记 - 数组类型互转
Java 学习笔记 - 数组类型互转 数组类型转换 字符串数组 to (Integer.Long.Double)列表 传统方式 Java8 Stream方式 数组 to 数组 字符串数组 to (in ...
- java学习笔记---5
IO流 I〇流概述: lO:输入/输出(Input/Output) 流:是一种抽象概念,是对数据传输的总称.也就是说数据在设备间的传输称为流,流的本质是数据传输IO流就是用来处理设备间数据传输问题的: ...
- Java学习笔记(原创)
Java学习笔记(原创) 2011-12-01 16:37:00| 分类: Java|举报|字号 订阅 下载LOFTER客户端 基本知识 一. Java基础 1. java语言的特点: ①简单:没有 ...
- java学习笔记11--Annotation
java学习笔记11--Annotation Annotation:在JDK1.5之后增加的一个新特性,这种特性被称为元数据特性,在JDK1.5之后称为注释,即:使用注释的方式加入一些程序的信息. j ...
最新文章
- 感知不强又徒增功耗?为何今年5G手机也这么重视AI
- PHP版本区别5与7:性能 64位 运算符 输入类型 返回类型 匿名类;7改进1.变量存储空间2.数组结构3.函数调用机制
- Struts2 简介
- 第六章勘误以及Normalization算法不完整
- 2018 KubeCon + CloudNativeCon完美落幕,行云献力
- Vue.js 概述与 MVVM 模式
- 生成随机数 java
- [文摘20071008]全国软考相关-计算机技术与软件专业资格(水平)考试
- java调度问题的贪心算法_贪心算法——换酒问题
- Nginx 进程间通信
- 语言编出的程序怎么实装_程序员小白:编程语言到底该怎么选?
- java我的世界1.6.2_我的世界1.6.2
- My New Game2
- 关于webstorm更换主题
- sqlserver2000下载地址
- FPGA基础入门【15】开发板I2C温度传感器配置
- Lodop打印参数方法参考
- 关于Python中的编程,这篇阅读量预算10万+的文章可能是你见过的最完整的讲解
- ios个人小游戏开发者如何做到年收益过百万?
- 基线、底线、顶线、中线