StringBuffer 类|学习笔记

简介: 快速学习 StringBuffer 类

开发者学堂课程【Java 高级编程 StringBuffer 类】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/302


StringBuffer 类


String类 是在所有项目开发之中一定会使用到的一个功能类,并且这个类拥有如下的特点:

每一个字符串的常量都属于一个 String 类的匿名对象,并且不可更改

String 有两个常量池:静态常量池、运行时常量池

String 类对象实例化建议使用直接赋值的形式完成,这样可以直接将对象保护在对象池中以下次重用

String 类的弊端:

内容不允许修改

为了解决此问题,专门提供有一个 StringBuffer 类可以实现字符串的内容修改

StringBuffer 并不像 String 类那样拥有两种对象实例化方式,StringBuffer 必须像.普通类对象那样,首先进行对象的实例化,而后才可以调用方法执行处理,而这个时候可以考虑使用 StringBuffer 类中的如下方法:.

构造方法: public StringBuffer(); 、

构造方法: public StringBuffer(String str),接收初始化字符串内容;.

数据追加: public StringBuffer append(数据类型变量),相当于字符串中的“+”操作;


范例:观察 String 与 StringBuffer 对比:

String 类对象引用传递            

图片18.png

StringBuffer 类对象引用传递

图片19.png


大部分情况下不是会出现改变字符串的内容,这种改变指的并不是针对于静态常量池的改变。

范例:分析一下已有问题.

package cn.mldn.demo;

public class JavaAPIDemo {

public static void main(String[] args) {

String strA = "www.mldn.cn";

String  strB  =  "www."+"mldn"+".cn";

System.out.println(strA == strB);

}

注:这个时候的 strB 对象的内容并不算是改变,严格的意义上来讲,对于现在的  strB 当程序编译之后会变为如下的形式:

package cn.mldn.demo;

public class JavaAPIDemo {

public static void main(String[] args) {

String strA = "www. mldn.cn" ;

String strB = "www." +"mldn'+ ".cn";

System. out. println(strA == strB);

StringBuffer buf = new StringBuffer() ;

bufAappend("www.")Aappend("mldn").append(".cn");

注:所有的“+”在编译之后都变为了 StringBuffer 中的 append() 方法,并且在程序之中 StringBuffer 与 String 类对象之间可以直接相互转换:

String 类对象变为 StringBuffer 可以依靠 StringBuffer 类的构造方法或者使用append 方法

所有类对象都可以通过 toString() 方法将其变为 String 类型

在 StringBuffer 类里面除了可以支持有字符串内容的修改之外,实际上也提供有了一些 String 类所不具备的方法。

1. 插入数据:

public StringBuffer insert(int offset,数据类型 b):

package cn.mldn.demo;

public class JavaAPIDemo {

public static void main(String[] args) {

StringBuffer buf = new StringBuffer();

buf.append("cn").insert(e,"www.") insert(4,"mldn");

System.out.println(buf);

2. 删除指定范围的数据:

package cn.mldn.demo;

public class JavaAPIDemo {

public staticvoid main(String[] args) {

StringBuffer buf = new StringBuffer();

buf.append("Hello World !").delete(6,12). insert(6,"MLDN");

System.out.println(buf);

}

3. 字符串内容反转:

package cn.mldn.demo;

public class JavaAPIDemo {

public staticvoidmain(String[] args) {

StringBuffer buf =ew StringBuffer();

buf append( "Hello World !");

System out println(buf reverse());

注:实际上与  StringBuffer 类还有一个类似的功能类: StringBuilder 类.这个类是在 JDK1.5 的时候提供的,该类中提供的方法与 StringBuffer 功能相同,最大的区别在于 StringBuffer 类中的方法属于线程安全的,全部使用了 synchronized 关键字进行标注,而 StringBuilder 类属于非线程安全的。

4. String、StringBuffer、StringBuilder 的区别:

String 类是字符串的首选类型,其最大的特点是内容不允许修改;

StringBuffer '与 StringBuilder 类的内容允许修改;

StringBuffer 是在 JDK 1.0 的时候提供的,属于线程安全的操作,而 StringBuilder 是在 JDK 1.5 之后提供的,不属于线程安全的操作。

相关文章
|
9天前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
21 0
java基础(13)String类
|
2月前
|
API 索引
String类下常用API
String类下常用API
36 1
|
2月前
for循环和String类下方法的一个练习题
for循环和String类下方法的一个练习题
45 1
|
6天前
|
安全 Java
String类-知识回顾①
这篇文章回顾了Java中String类的相关知识点,包括`==`操作符和`equals()`方法的区别、String类对象的不可变性及其好处、String常量池的概念,以及String对象的加法操作。文章通过代码示例详细解释了这些概念,并探讨了使用String常量池时的一些行为。
String类-知识回顾①
|
19天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
19 1
Java——String类详解
|
6天前
|
存储 JSON NoSQL
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
这篇文章是关于Redis基本数据结构的学习笔记,包括了String、Hash、Set、List和SortedSet的介绍和常用命令。文章解释了每种数据结构的特点和使用场景,并通过命令示例演示了如何在Redis中操作这些数据结构。此外,还提供了一些练习示例,帮助读者更好地理解和应用这些数据结构。
redis基本数据结构(String,Hash,Set,List,SortedSet)【学习笔记】
|
15天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
15天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
2月前
|
Java API 索引
【Java基础面试二十四】、String类有哪些方法?
这篇文章列举了Java中String类的常用方法,如`charAt()`、`substring()`、`split()`、`trim()`、`indexOf()`、`lastIndexOf()`、`startsWith()`、`endsWith()`、`toUpperCase()`、`toLowerCase()`、`replaceFirst()`和`replaceAll()`,并建议面试时展示对这些方法的熟悉度,同时深入理解部分方法的源码实现。
【Java基础面试二十四】、String类有哪些方法?
|
9天前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法