String和StringBuffer的具体区别

String和StringBuffer的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常进行字符串连接操作的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响。

String和StringBuffer的具体区别-Worktile社区

String 类型和 StringBuffer 类型的主要性能区别其实在于 String 是不可变的对象, 因此在每次对 String 类型进行改变的时候其实都等同于生成了一个新的 String 对象,然后将指针指向新的 String 对象,所以经常进行字符串连接操作的字符串最好不要用 String ,因为每次生成对象都会对系统性能产生影响,而且当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,影响运行速度。 而如果是使用 StringBuffer 类则结果就不一样了,每次结果都会对 StringBuffer 对象本身进行操作,而不是生成新的对象。所以在字符串对象经常改变的情况下我们推荐使用 StringBuffer 。

String:

在String类中没有用来改变已有字符串中的某个字符的方法,由于不能改变一个java字符串中的某个单独字符,所以在JDK文档中称String类的对象是不可改变的。然而,不可改变的字符串具有一个很大的优点:编译器可以把字符串设为共享的。

StringBuffer:

StringBuffer类属于一种辅助类,可预先分配指定长度的内存块建立一个字符串缓冲区。这样使用StringBuffer类的append方法追加字符 比String使用 + 操作符添加字符 到 一个已经存在的字符串后面有效率得多。因为使用 +操作符每一次将字符添加到一个字符串中去时,字符串对象都需要寻找一个新的内存空间来容纳更大的字符串,这无凝是一个非常消耗时间的操作。添加多个字符也就意味着要一次又一次的对字符串重新分配内存。使用StringBuffer类就避免了这个问题。

StringBuffer是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

延伸阅读:

什么是String?

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。

String就是C++、java、VB等编程语言中的字符串,用双引号引起来的几个字符,如”Abc”,”一天”.

String类是不可变(final)的,对String类的任何改变,都是返回一个新的String类对象。这样的话把String类的引用传递给一个方法,该方法对String的任何改变,对原引用指向的对象没有任何影响,这一点和基本数据类型相似。

文章标题:String和StringBuffer的具体区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37876

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年2月13日 上午2:08
下一篇 2023年2月13日 上午2:11

相关推荐

  • 为什么Celery有用

    为什么Celery有用:1、celery可以实现异步任务来提高项目的并发量,完成延迟任务、定时任务;2、celery是一个简单、灵活、可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具。 一、celery作用 1、celery可以实现异步任务来提高项目的并发量,完成延迟任务、定…

    2023年6月3日
    400
  • 搜狐快站金庸:有情有义,90后技术创业者的问剑之路

    文| babayage 编辑 |笑 笑 因户口入职搜狐 科创人:《科创人》采访前会尽量多地查阅采访对象资料,但您的资料确实难搜……向读者们做下自我介绍吧。 金庸:(笑)这个名字不加其他关键词是很难搜,我1991年出生在江西南昌,家里是做生意的,2007年考进北大,2014年北大计算机硕士专业毕业,毕…

    2022年3月20日
    12300
  • 项目一览怎么做看板管理

    做看板管理的步骤是:1、确定看板的列;2、创建任务卡片;3、移动任务卡片;4、可视化展示。首先,我们需要确定看板的列。在项目一览中,我们可以将列分为待办、进行中和已完成三个部分。 1、确定看板的列 首先,我们需要确定看板的列。在项目一览中,我们可以将列分为待办、进行中和已完成三个部分。待办列用于列出…

    2023年2月28日
    4600
  • 项目进度怎么写

    写项目进度需要以下几点:1、确定报告格式和内容;2、收集项目进度数据;3、分析项目进度数据;4、编写项目进度报告;5、发送和共享项目进度报告。项目进度报告通常包括以下内容:项目基本信息(项目名称、项目经理、项目周期等)。 1、确定报告格式和内容 项目进度报告通常包括以下内容: – 项目基…

    2023年2月26日
    66700
  • 回调函数,仿函数(functor)的区别及各自应用场景

    区别:回调函数是一个被作为参数传递的函数。在C语言中,回调函数只能用函数指针实现,在C++、Python、ECMAScript中还能使用仿函数或匿名函数。仿函数(functor),就是使一个类的使用看上去像一个函数。其实现是类中实现一个operator(),这个类有了类似函数的行为,就是一个仿函数类…

    2023年2月20日
    7100
  • Windows下Core Audio APIs的使用简介

    如今,越来越多的产品开始使用音视频功能,其中部分有开发能力和需求的用户,希望能自主实现部分端侧的数据采集和设备管理功能。本篇文章将分享Windows 下音频设备相关能力实现,重点讲述 Core Audio Apls 在实时音视频中需要用到的相关功能,针对各个功能点简单展示实现方式,并给出一些注意事项…

    2022年3月17日
    60600
  • 如何利用防火墙加强防护

    利用防火墙加强防护的方法有:1、及时更新防火墙;2、利用反病毒保护;3、利用允许列表限制可访问的端口和主机;4、分段网络;5、确保可用的网络冗余以避免停机。比如:更新防火墙是指安装固件和软件补丁,有效抵御任何新发现的漏洞。 正确设置和维护防火墙对于保护网络和设备的安全至关重要。以下是指导您借助防火墙…

    2022年10月27日
    13400
  • 沟通在管理工作中的作用是什么

    沟通在管理工作中的作用是:1、沟通能使决策更加正确、科学、合理;2、沟通促使企业员工协调有效地工作;3、沟通有利于领导者激励员工;4、通过与外界的沟通交流,塑造良好外部形象。企业内部的沟通使决策更加正确、科学、合理,沟通有助于改进决策。 1、沟通能使决策更加正确、科学、合理 在管理过程中,经常有或大…

    2023年1月17日
    10500
  • 产品经理用什么项目软件

    产品经理用的项目软件有:一、项目管理类软件;二、原型设计类软件;三、数据分析类软件。项目管理软件有Trello、Asana、Jira。Trello 是一款非常流行的项目管理软件,可以方便地创建卡片、列和面板,进行任务分配和时间管理。 产品经理在日常工作中需要使用各种软件来辅助管理项目,提高工作效率。…

    2023年3月2日
    1800
  • 怎么打开项目管理系统

    打开项目管理系统的步骤:一、打开电脑;二、打开浏览器;三、输入网址;四、输入用户名和密码;五、选择项目;六、开始管理项目。首先,确保电脑处于正常状态,按下电源键,待电脑启动完毕。 一、打开电脑 首先,确保电脑处于正常状态,按下电源键,待电脑启动完毕。 二、打开浏览器 通过双击鼠标或单击任务栏上的浏览…

    2023年4月30日
    2200

发表回复

登录后才能评论
联系我们
站长微信
站长微信
分享本页
返回顶部