关键区别–java中的string与stringbuffer与stringbuilder
String、StringBuffer和stringbuilder是Java中的类。字符串在Java编程中被广泛使用。一旦创建了字符串对象,就不可能更改它们。每次字符串发生更改时,它都会创建一个新字符串。即使是连接到现有字符串,它也会创建一个新字符串。这会导致内存浪费。使用Java中的StringBuffer和StringBuilder类来修改字符串。String、StringBuffer和StringBuilder在Java中的主要区别在于String是一个类,用于创建String类型的对象,StringBuffer是一个用于修改提供线程安全性的字符串的类,StringBuilder是一个用于修改不提供线程安全性的字符串的类。
目录
1. 概述和主要区别
2. Java中的字符串是什么
3. 什么是Java中的StringBuffer
4. 什么是Java中的StringBuilder
5. StringBuilder与StringBuffer中字符串的相似性
6. 并列比较——以表格形式显示的Java中的String与StringBuffer与StringBuilder
7. 摘要
什么是java字符串(string in java)?
字符串类在java.lang语言包裹。程序员每次创建字符串时,它都是String类型的对象。字符串是不可变的,这意味着一旦创建了对象,就不能更改它。使用诸如Integer、Byte、Float、Double等包装类创建的对象也是不可变的。字符串文字用双引号括起来。e、 g.“你好世界”。每次创建字符串文本时,Java虚拟机(JVM)都会检查字符串常量池。如果字符串存在,则返回对字符串常量池的引用。如果是新字符串,则在字符串常量池中创建该对象。
参考下面的代码。
String s1=“你好”;
s1=s1+“世界”;
系统输出打印项数(s1);
在第一条语句中,s1指的是字符串常量池中的“Hello”。在第二条语句中,JVM不更改现有的字符串。相反,它创建了一个新字符串“Hello World”,s1现在引用这个新字符串。现有的“Hello”对象仍然存在于字符串常量池中。
如果有密码,
String s1=“你好”;
串s2=s1;
s1和s2都将引用字符串对象“Hello”。
什么是java中的stringbuffer(stringbuffer in java)?
StringBuffer类用于使字符串对象可变。因此,可以修改这些对象。StringBuffer定义了四个构造函数。StringBuffer()、StringBuffer(int size)、StringBuffer(String str)、StringBuffer(charSequence[]ch)
参考下面的代码,
StringBuffers1=新StringBuffer(“Hello”);
s1.追加(“世界”);
System.out.println(s1);
在语句1中,s1引用堆中的“Hello”对象。对象是可变的,因为它是使用StringBuffer创建的。在语句2中,“World”被附加到同一个“Hello”字符串对象之后。
使用StringBuffer类创建的字符串对象可以节省内存。StringBuffer提供线程安全性,因为两个线程不能同时访问StringBuffer类中的同一个方法。线程安全性会降低StringBuffer性能。StringBuffer类包含append()、insert()、reverse()、replace()等方法。
什么是java中的stringbuilder(stringbuilder in java)?
StringBuilder类用于使字符串对象可变。因此,可以修改这些对象。该功能类似于StringBuffer,但这不提供线程安全性。StringBuilder有一些构造函数,比如StringBuilder()、StringBuilder(int size)、StringBuilder(StringStr)。
请参阅下面的代码。
StringBuilder s1=新建StringBuilder(“你好”);
s1.追加(“世界”);
System.out.println(s1);
在语句1中,s1引用堆中的“Hello”对象。对象是可变的,因为它是使用StringBuilder创建的。在语句2中,“World”被附加到同一个“Hello”字符串对象之后。不需要创建全新的字符串对象。
使用StringBuilder类创建的字符串对象可以节省内存。与StringBuffer不同,StringBuilder不提供线程安全性,因为两个线程可以同时访问StringBuilder类中的同一个方法。StringBuilder类包含append()、insert()、reverse()、replace()等方法。
什么是java中string、stringbuffer和stringbuilder的相似性(the similarity between string, stringbuffer and stringbuilder in java)?
- 所有这些都可以用来创建字符串。
字符串缓冲区(string stringbuffer)和java中的stringbuilder(stringbuilder in java)的区别
String vs StringBuffer vs StringBuilder | |
字符串 | string是一个Java类,用于创建string类型的对象,string是一个字符序列。 |
字符串缓冲区 | StringBuffer是一个Java类,用于创建字符串对象,可以使用线程安全性对其进行修改。 |
字符串拼接 | StringBuilder是一个用于创建字符串对象的类,可以在没有线程安全性的情况下对其进行修改。 |
易变性 | |
字符串 | 字符串是一个不可变的类。 |
字符串缓冲区 | StringBuffer是一个可变类。 |
字符串拼接 | StringBuilder是一个可变类。 |
螺纹安全性 | |
字符串 | 字符串的方法是线程安全的。 |
字符串缓冲区 | StringBuffer的方法是线程安全的和同步的。 |
字符串拼接 | StringBuilder的方法不是线程安全的,也不是同步的。 |
性能 | |
字符串 | 绳子快了。 |
字符串缓冲区 | StringBuffer速度慢。 |
字符串拼接 | StringBuilder速度很快。 |
总结 - 一串(string) vs. 字符串缓冲区(stringbuffer)
String、StringBuffer和StringBuilder看起来是相同的,但是它们有不同的含义。所有这些都是Java类。在Java中String、StringBuffer和StringBuilder的区别在于,String是创建String类型的对象的类,String是一组字符,StringBuffer是用来修改字符串并提供线程安全性的类,而StringBuilder是一个用于修改不提供线程安全性的字符串的类。
下载pdf string vs stringbuffer vs stringbuilder
你可以下载这篇文章的PDF版本,并按照引文说明离线使用。请在这里下载PDF版本StringBuffer和Java中StringBuilder的区别