首页 Java Java基础 string,stringbuffer以及stringbuilder的区别

string,stringbuffer以及stringbuilder的区别

Jun 19, 2020 pm 05:24 PM
string stringbuffer stringbuilder

string,stringbuffer以及stringbuilder的区别

string,stringbuffer以及stringbuilder的区别?

小编在一次电话面试中,被问过StringBuilder是线程安全的吗,脱口而出是安全的,结果人家质疑我你是2年开发经验吗。长时间得不使用这个类,造成了我选择的性的忘记,也可以说是基础不牢吧。不知道大家有没有过这样的经历,所以还是笔头上记录,更能增加我的记忆力。

String:大家都知道String是使用final修饰的,所以它的值是不可变的,这就导致每次对String的操作都会生成新的String对象,这样不仅效率低下,而且大量浪费有限的内存空间,如图:

b9bacd87f3c96b6bf6d42eff7a28f47.png

我们可以看到,初始String值为“abc”,然后在这个字符串后面加上新的字符串“bv”,这个过程是需要重新在栈堆内存中开辟内存空间的,最终得到了“abcbv”字符串也相应的需要开辟内存空间,这样短短的两个字符串,却需要开辟三次内存空间,不得不说这是对内存空间的极大浪费。为了应对经常性的字符串相关的操作,引入了两个新的类——StringBuffer类和StringBuild类来对此种变化字符串进行处理。

0ae0bd9b46b924e588caae0d1955d09.png

StringBuilder类:在 Java 5 中被提出,特点是可变字符串。执行效率高,线程不安全。

StringBuffer类:特点是可变字符串,执行效率低,线程安全。

可以看得出时间上更快一些。

总结:

  • 如果要操作少量的数据用 String;

  • 多线程操作字符串缓冲区下操作大量数据 StringBuffer;

  • 单线程操作字符串缓冲区下操作大量数据 StringBuilder。

推荐教程: 《java教程

以上是string,stringbuffer以及stringbuilder的区别的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

使用java的String.valueOf()函数将基本数据类型转换为字符串 使用java的String.valueOf()函数将基本数据类型转换为字符串 Jul 24, 2023 pm 07:55 PM

使用Java的String.valueOf()函数将基本数据类型转换为字符串在Java开发中,当我们需要将基本数据类型转换为字符串时,一种常见的方法是使用String类的valueOf()函数。这个函数可以接受基本数据类型的参数,并返回对应的字符串表示。在本文中,我们将探讨如何使用String.valueOf()函数进行基本数据类型转换,并提供一些代码示例来

怎么把char数组转string 怎么把char数组转string Jun 09, 2023 am 10:04 AM

char数组转string的方法:可以通过赋值来实现,使用{char a[]=" abc d\0efg ";string s=a;}语法,让char数组对string直接赋值,执行代码即可完成转换。

stringbuilder清空的方法有哪些 stringbuilder清空的方法有哪些 Oct 12, 2023 pm 04:57 PM

stringbuilder清空的方法有:1、使用setLength(0)方法清空StringBuilder对象;2、使用delete(0, length)方法清空StringBuilder对象;3、使用replace(0, length, "")方法清空StringBuilder对象;4、使用new StringBuilder()重新创建一个新的StringBuilder对象。

Java中使用StringBuilder类的delete()方法删除字符串中的部分内容 Java中使用StringBuilder类的delete()方法删除字符串中的部分内容 Jul 26, 2023 pm 08:43 PM

Java中使用StringBuilder类的delete()方法删除字符串中的部分内容String类是Java中常用的字符串处理类,它具有很多常用的方法可用于字符串的操作。然而,在某些情况下,我们需要对字符串进行频繁的修改,而String类的不可变性会导致频繁的创建新的字符串对象,从而影响性能。为了解决这个问题,Java提供了StringBuilder类,它

使用java的String.replace()函数替换字符串中的字符(串) 使用java的String.replace()函数替换字符串中的字符(串) Jul 25, 2023 pm 05:16 PM

使用Java的String.replace()函数替换字符串中的字符(串)在Java中,字符串是不可变的对象,这意味着一旦创建了一个字符串对象,就无法修改它的值。但是,你可能会遇到需要替换字符串中的某些字符或者字符串的情况。这时候,我们可以使用Java的String类中的replace()方法来实现字符串的替换。String类的replace()方法有两种重

在Java中将字符串转换为StringBuilder 在Java中将字符串转换为StringBuilder Sep 02, 2023 pm 03:57 PM

StringBuilder类的append()方法接受String值并将其添加到当前对象。将字符串值转换为StringBuilder对象-获取字符串值。附加使用append()方法将字符串获取到StringBuilder。示例在下面的Java程序中,我们是将字符串数组转换为单个StringBuilder对象。 实时演示publicclassStringToStringBuilder{  publicstaticvoidmain(Stringargs[]){&a

Java文档解读:StringBuilder类的substring()方法详细介绍 Java文档解读:StringBuilder类的substring()方法详细介绍 Nov 03, 2023 pm 04:31 PM

Java文档解读:StringBuilder类的substring()方法详细介绍引言:在Java编程中,字符串的处理是非常常见的操作之一。而Java提供了一系列关于字符串处理的类和方法,其中StringBuilder类是常用于频繁字符串操作的选择。在StringBuilder类中,substring()方法是一个非常有用的方法,用于截取字符串的子串。本文将

Java如何使用StringBuilder类的substring()函数截取字符串的子串 Java如何使用StringBuilder类的substring()函数截取字符串的子串 Jul 24, 2023 pm 12:13 PM

Java如何使用StringBuilder类的substring()函数截取字符串的子串在Java中,我们经常需要处理字符串的操作。而Java的StringBuilder类提供了一系列的方法,方便我们对字符串进行操作。其中,substring()函数可以用于截取字符串的子串。substring()函数有两种重载形式,分别是substring(intstar

See all articles