可变字符串StringBuffer和StringBuilder

简介: 可变字符串StringBuffer和StringBuilder

咱么接着上一期来说

既然String类字符串是不可变对象,我们想修改它的值就无计可施了吗,当然不是,我们有强大的StringBuffer和SringBuilder

StringBuffer和StringBuilder两个在创建对象时必须使用new关键字

d6746baf784a47b990c56b78bc63d902.png


640aaa36b1e946e0b2e4cce024ea1b8e.png

在拼接的时候返回当前this对象


  public static void main(String[] args) {
        StringBuilder  stringBuilder=new StringBuilder("123");
        stringBuilder.append(123);
        System.out.println(stringBuilder);
    }


88aaf830c32f4a819585b9c2bf11c027.png

public static void main(String[] args) {
        StringBuffer stringBuffer=new StringBuffer("wyb");
        stringBuffer.append(" I love you");
        System.out.println(stringBuffer);
    }

2fc6c0e2e2b04d13b9f77bb6f81b9894.png

现在看看StringBuffer的源码


dd862bb6585646978af2734f537b9091.png


StringBuffer的append 方法被synchronized修饰了,所以是线程安全的


但不能说StringBuffer比StringBuilder更加高效,因为频繁的加锁和解锁是需要耗费很多资源的


今天的分享就到这里,我们下期再见!!!  


相关文章
|
6天前
|
索引 Python
String(字符串)
String(字符串)。
12 3
|
28天前
|
NoSQL Redis
Redis 字符串(String)
10月更文挑战第16天
37 4
|
2月前
|
安全 Java
String、StringBuffer、StringBuilder的区别
这篇文章讨论了Java中String、StringBuffer和StringBuilder的区别。String是不可变的,每次操作都会产生新的对象,效率低且浪费内存。StringBuilder可以在原字符串基础上进行操作,不开辟额外内存,弥补了String的缺陷。StringBuffer和StringBuilder类似,但StringBuffer的方法是线程安全的。文章还列举了StringBuffer的常用方法,并提供了使用示例代码。最后总结了这三者的主要区别。
String、StringBuffer、StringBuilder的区别
|
1月前
|
canal 安全 索引
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
(StringBuffer和StringBuilder)以及回文串,字符串经典习题
33 5
|
23天前
|
存储 安全 Java
String、StringBuffer 和 StringBuilder 的区别
【10月更文挑战第21天】String、StringBuffer 和 StringBuilder 都有各自的特点和适用场景。了解它们之间的区别,可以帮助我们在编程中更合理地选择和使用这些类,从而提高程序的性能和质量。还可以结合具体的代码示例和实际应用场景,进一步深入分析它们的性能差异和使用技巧,使对它们的理解更加全面和深入。
14 0
|
1月前
|
存储 JavaScript 前端开发
JavaScript 字符串(String) 对象
JavaScript 字符串(String) 对象
43 3
|
2月前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
2月前
|
存储 C++
C++(五)String 字符串类
本文档详细介绍了C++中的`string`类,包括定义、初始化、字符串比较及数值与字符串之间的转换方法。`string`类简化了字符串处理,提供了丰富的功能如字符串查找、比较、拼接和替换等。文档通过示例代码展示了如何使用这些功能,并介绍了如何将数值转换为字符串以及反之亦然的方法。此外,还展示了如何使用`string`数组存储和遍历多个字符串。
|
3月前
|
C# 开发者 UED
WPF开发者必备秘籍:深度解析文件对话框使用技巧,打开与保存文件原来如此简单!
【8月更文挑战第31天】在WPF应用开发中,文件操作是常见需求。本文详细介绍了如何利用`Microsoft.Win32`命名空间下的`OpenFileDialog`和`SaveFileDialog`类来正确实现文件打开与保存功能。通过示例代码展示了如何设置文件过滤器、初始目录等属性,并使用对话框进行文件读写操作。正确使用文件对话框能显著提升用户体验,使应用更友好易用。
78 0