众所周知,java 对象基本上有两种类型,它们是可变的和不可变的。不可变对象是指一旦创建其内容就无法修改的对象。每当不可变对象的内容发生更改时,都会创建新对象。对于可变对象,我们可以更改现有对象的内容,但这不会导致创建新对象。因此,可变字符串是那些可以在不创建新对象的情况下更改其内容的字符串。
开始您的免费软件开发课程
网络开发、编程语言、软件测试及其他
StringBuffer和StringBuilder是java中String的可变版本,而java String类是不可变的。因此 StringBuffer 是一个可变字符串,用于为字符串对象提供可变性。 String 类包含固定长度、不可变的字符序列,而字符串缓冲区具有可扩展的长度和可写的字符序列。
如何在Java中使用字符串缓冲区类?
这里有一些要点展示了我们如何在 java 中使用 StringBuffer。
- 如前所述,java 中的可变字符串可以使用 StringBuffer 和 StringBuilder 类创建。
- 两者之间的主要区别在于 StringBuffer 是线程安全的实现,而 StringBuilder 则不是。
- 每当需要高性能和高安全性时,人们应该更喜欢 String 类的可变版本。
- 由于String池的存在,String类存在安全问题;因此,每当需要数据安全时,就会使用 StringBuffer。
- StringBuffer 在性能方面比 StringBuffer 更好,因为 StringBuffer 是线程安全的,但每当需要线程安全时,就应该选择 StringBuffer。
StringBuffer 构造函数
以下是字符串缓冲区构造函数:
- StringBuffer(): 这会创建一个空的 StringBuffer,默认容量为 16 个字符。
- StringBuffer(intcapacity): 这将创建一个具有指定容量的空 StringBuffer。
- StringBuffer(CharSequence charseq): 这将创建包含与指定字符序列中相同字符的 StringBuffer。
- StringBuffer(String str): 创建与指定 String 对应的 StringBuffer。
这是 StringBuffer 类的声明:
public final class StringBuffer extends Object implements Serializable,CharacterSequence,Appendable
Java中StringBuffer类的方法
现在我们将了解 StringBuffer 中可用的不同方法和字段。以下是 StringBuffer 类中常用方法的列表:
方法名称 | 描述 |
长度()和容量() | 可变字符串的长度可以使用length()方法计算,相应的容量可以使用capacity()计算。 |
追加(字符串str)
追加(整数) |
此方法用于在现有字符串缓冲区的末尾添加新文本。 |
插入(int索引,字符串str)
插入(int索引,char ch) |
用于在给定字符串的指定位置插入文本。在给定的语法中,索引指定要插入字符串的起始索引。 |
反向() | 用于反转给定字符串缓冲区对象中的字符顺序。 |
删除(int start, int end)和deleteCharAt(int index) | 用于从字符串缓冲区中删除字符。 Start 表示要删除的第一个字符的起始索引,end 表示要删除的最后一个字符的索引。 |
替换(int startindex, int endindex, String str) | 用于用指定的字符串缓冲区替换startindex和endindex-1之间的字符序列。 |
charAt(int 索引) | 用于返回字符串缓冲区中指定索引处的字符。 |
codePointAt(int 索引) | 用于返回指定索引处字符的 Unicode。 |
codePointBefore(int 索引) | 用于返回指定索引之前的字符的Unicode。 |
子字符串(int start)
substring(int start, int end) |
Used to return a new String that contains a subsequence of characters contained in a given string. |
ensureCapacity(int capacity) | Used for increasing the capacity of an existing string buffer object. |
toString() | Used to convert mutable string buffer to an immutable string object. |
Examples of StringBuffer Class in Java
Here are some of the examples of StringBuffer class which are given below:
Example #1
Let us see a basic example of the StringBuffer class.
Code:
public class StringBufferDemo{ public static void main(String args[]){ StringBuffer sBuffer1=new StringBuffer("Welcome"); System.out.println("Original String is ::: " + sBuffer1 + ":: having length " + sBuffer1.length()); //using append method sBuffer1.append(" To Edubca"); System.out.println("Modified String after append is :: " + sBuffer1 + " :: having length " + sBuffer1.length()); //using reverse method sBuffer1.reverse(); System.out.println("Modified String after Reverse is :: " + sBuffer1); } }
The above code shows the creation of java StringBuffer and its different methods. The following output will be produced.
Output:
Example #2
In this example, we will see some more methods of the StringBuffer class.
Code:
public class StringBufferDemo{ public static void main(String args[]){ StringBuffer sBuffer=new StringBuffer ("WelcomeToEdubca"); System.out.println("Original String is ::: " + sBuffer + ":: having length " + sBuffer.length()); //using replace method sBuffer.replace(0,9,"This is "); System.out.println("Modified String after replace is :: " + sBuffer + " :: having length " + sBuffer.length()); //using delete method sBuffer.delete(0,7); System.out.println("Modified String after delete is :: " + sBuffer); } }
The above code will display the following as output.
Output:
In the above example, we have seen how to create a StringBuffer class and usage of its methods.
Conclusion
From the above discussion, we have a clear understanding of StringBuffer in java, how it is created, and the different methods available in the StringBuffer class. Also, StringBuffer is thread-safe; therefore, it can be used in a multithreading environment.
以上是Java中的StringBuffer类的详细内容。更多信息请关注PHP中文网其他相关文章!

本文讨论了使用Maven和Gradle进行Java项目管理,构建自动化和依赖性解决方案,以比较其方法和优化策略。

本文使用Maven和Gradle之类的工具讨论了具有适当的版本控制和依赖关系管理的自定义Java库(JAR文件)的创建和使用。

本文讨论了使用咖啡因和Guava缓存在Java中实施多层缓存以提高应用程序性能。它涵盖设置,集成和绩效优势,以及配置和驱逐政策管理最佳PRA

本文讨论了使用JPA进行对象相关映射,并具有高级功能,例如缓存和懒惰加载。它涵盖了设置,实体映射和优化性能的最佳实践,同时突出潜在的陷阱。[159个字符]

Java的类上载涉及使用带有引导,扩展程序和应用程序类负载器的分层系统加载,链接和初始化类。父代授权模型确保首先加载核心类别,从而影响自定义类LOA

本文解释了用于构建分布式应用程序的Java的远程方法调用(RMI)。 它详细介绍了接口定义,实现,注册表设置和客户端调用,以解决网络问题和安全性等挑战。

本文详细介绍了用于网络通信的Java的套接字API,涵盖了客户服务器设置,数据处理和关键考虑因素,例如资源管理,错误处理和安全性。 它还探索了性能优化技术,我

本文详细介绍了创建自定义Java网络协议。 它涵盖协议定义(数据结构,框架,错误处理,版本控制),实现(使用插座),数据序列化和最佳实践(效率,安全性,维护


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

记事本++7.3.1
好用且免费的代码编辑器

Dreamweaver CS6
视觉化网页开发工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

PhpStorm Mac 版本
最新(2018.2.1 )专业的PHP集成开发工具