Java语言中的String、StringBuffer和StringBuilder三者的详细介绍

简介:

String:内容不可更改

String字符串对象的内容不可更改,更改是一种假象,实际更改的是堆内存的指向。

例如:String str = "Hello"; str+" word!";

首先系统会在栈内存中开辟一个栈空间存储"str",然后在堆内存中开辟一个堆空间存储"Hello",栈内存空间中的"str"指向堆内存空间的"Hello"。到" str+"word!"; "时,系统会再开辟两个堆内存空间,一个存放" word!",另一个存放"Hello word!",然后栈内存空间中的"str"指向堆内存空间的"Hello word!",之后"Hello"与" word!"所占的堆内存空间会因为没有被引用而被系统回收。所以,用String变量拼接字符串的时候与其他两种字符串操作对象相比,较为耗内存空间。

StringBuffer:内容可以更改

StringBuffer是String缓冲区的意思,其本身也是操作字符串,但是它与String不同,StringBuffer可以更改指向的堆内存空间存储的内容,所以它较String省内存,但是速度较String稍慢。StringBuffer是一个操作类,所以必须通过实例化进行操作,不然会报空指针异常错误,而String变量可以直接赋值初始化。

StringBuilder:单线程建议优先考虑该类,速度比StringBuffer快

StringBuilder是一个可变的字符序列,该类被设计作为StringBuffer的一个简易替换,用在字符串缓冲区被单个线程使用的时候。因为在线程安全上,StringBuilder是线程不安全的,而StringBuffer是线程安全的。单线程建议优先考虑该类,速度比StringBuffer快。

需要注意的是String类和StringBuffer都是被final关键字修饰的。对于一个final变量,如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改;如果是引用类型的变量,则在对其初始化之后便不能再让其指向另一个对象。

相关文章
|
10天前
|
Java 索引
java基础(13)String类
本文介绍了Java中String类的多种操作方法,包括字符串拼接、获取长度、去除空格、替换、截取、分割、比较和查找字符等。
24 0
java基础(13)String类
|
2月前
|
Kubernetes jenkins 持续交付
从代码到k8s部署应有尽有系列-java源码之String详解
本文详细介绍了一个基于 `gitlab + jenkins + harbor + k8s` 的自动化部署环境搭建流程。其中,`gitlab` 用于代码托管和 CI,`jenkins` 负责 CD 发布,`harbor` 作为镜像仓库,而 `k8s` 则用于运行服务。文章具体介绍了每项工具的部署步骤,并提供了详细的配置信息和示例代码。此外,还特别指出中间件(如 MySQL、Redis 等)应部署在 K8s 之外,以确保服务稳定性和独立性。通过本文,读者可以学习如何在本地环境中搭建一套完整的自动化部署系统。
58 0
|
21天前
|
安全 Java API
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
String常量池、String、StringBuffer、Stringbuilder有什么区别、List与Set的区别、ArrayList和LinkedList的区别、HashMap底层原理、ConcurrentHashMap、HashMap和Hashtable的区别、泛型擦除、ABA问题、IO多路复用、BIO、NIO、O、异常处理机制、反射
【Java面试题汇总】Java基础篇——String+集合+泛型+IO+异常+反射(2023版)
|
20天前
|
存储 安全 Java
Java——String类详解
String 是 Java 中的一个类,用于表示字符串,属于引用数据类型。字符串可以通过多种方式定义,如直接赋值、创建对象、传入 char 或 byte 类型数组。直接赋值会将字符串存储在串池中,复用相同的字符串以节省内存。String 类提供了丰富的方法,如比较(equals() 和 compareTo())、查找(charAt() 和 indexOf())、转换(valueOf() 和 format())、拆分(split())和截取(substring())。此外,还介绍了 StringBuilder 和 StringJoiner 类,前者用于高效拼接字符串,后者用于按指定格式拼接字符串
20 1
Java——String类详解
|
17天前
|
安全 Java
Java StringBuffer 和 StringBuilder 类详解
在 Java 中,`StringBuffer` 和 `StringBuilder` 用于操作可变字符串,支持拼接、插入、删除等功能。两者的主要区别在于线程安全性和性能:`StringBuffer` 线程安全但较慢,适用于多线程环境;`StringBuilder` 非线程安全但更快,适合单线程环境。选择合适的类取决于具体的应用场景和性能需求。通常,在不需要线程安全的情况下,推荐使用 `StringBuilder` 以获得更好的性能。
|
17天前
|
Java 索引
Java String 类详解
Java 中的 `String` 类用于表示不可变的字符序列,是 Java 标准库 `java.lang` 包的一部分。字符串对象一旦创建,其内容不可更改,修改会生成新对象。
|
11天前
|
Java 索引
java基础扫盲-String类常用的方法
java基础扫盲-String类常用的方法
|
2月前
|
API C# 开发者
WPF图形绘制大师指南:GDI+与Direct2D完美融合,带你玩转高性能图形处理秘籍!
【8月更文挑战第31天】GDI+与Direct2D的结合为WPF图形绘制提供了强大的工具集。通过合理地使用这两种技术,开发者可以创造出性能优异且视觉效果丰富的WPF应用程序。在实际应用中,开发者应根据项目需求和技术背景,权衡利弊,选择最合适的技术方案。
47 0
|
Java
Java---StringBuffer()方法的简单应用
Java---StringBuffer()方法的简单应用
130 0
|
Java
Java---StringBuffer()方法的简单应用
描述:在实际应用中,经常回遇到对字符串进行动态修改。这时候,String类的功能受到限制,而StringBuffer类可以完成字符串的动态添加、插入和替换等操作。 1、构造函数。
709 0
下一篇
无影云桌面