关于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是线程安全的,在多线程程序中也可以很方便的进行使用,但是程序的执行效率相对来说就要稍微慢一些。

延伸阅读:

什么是JAVA?

Java programming language具有大部分编程语言所共有的一些特征,被特意设计用于互联网的分布式环境。Java具有类似于C++语言的”形式和感觉”,但它要比C++语言更易于使用,而且在编程时彻底采用了一种”以对象为导向”的方式。使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

Java是Sun微系统公司在1995年推出的,推出之后马上给互联网的交互式应用带来了新面貌。最常用的两种互联网浏览器软件中都包括一个Java虚拟机。几乎所有的操作系统中都增添了Java编译程序。

使用Java编写的应用程序,既可以在一台单独的电脑上运行,也可以被分布在一个网络的服务器端和客户端运行。另外,Java还可以被用来编写容量很小的应用程序模块或者applet,做为网页的一部分使用。applet可使网页使用者和网页之间进行交互式操作。

文章标题:关于String与StringBuffer的区别,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37912

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
小编小编认证作者
上一篇 2023年2月13日 上午2:29
下一篇 2023年2月13日 上午2:32

相关推荐

  • RTC技术在低带宽环境下的音视频传输效果

    实时通信(RTC)技术 在低带宽环境下实施音视频传输的效率得益于: 1、编解码优化、2、弱网优化策略、3、自适应码率调整。在这其中,编解码优化 对于提升音视频传输的效果至关重要,它包含先进的算法来压缩数据以减少它们所需的带宽,同时尽量保持质量。一些现代的编解码器,如H.265和VP9,相比于老一代的…

    2023年12月25日
    37600
  • ASF董事吴晟:佛系程序员成长手册

    文| babayage 编辑 | 笑 笑 ▲3月天穿t恤发表当选感言的吴晟。 当选邮件发出的那天,吴晟正在三亚off-site。边旅行、边办公、顺便成为历史性事件主角,正是爱车、爱表、爱社交之人吴晟的标志性画风。 佛系吴晟: 专业选喜欢的,工作选给户口的 吴晟说,自己30岁之前,没有理想、人生目标这…

    2022年3月20日
    50500
  • 建筑业企业oa系统

    标题:建筑业企业OA系统的实施及其对业务流程的优化 摘要:建筑业企业在实施OA系统时,1、提高工作效率是关键词,2、优化资源配置,3、促进信息共享,4、强化项目管理。当中,提高工作效率通过消减纸质文档往来、加速信息流转速度以及简化日常管理流程起着决定性作用。详细描述中,如何OA系统减少了成本开销、缩…

    2024年1月15日
    22200
  • it如何管理项目

    项目管理是确保项目目标实现、成本控制以及按时交付的重要工具和技术。有效项目管理的基石包括明确的沟通、周密的计划、动态的团队管理、风险评估和缓解、以及质量控制。在这些基础上,项目经理可以采用适合项目特性的方法论,如敏捷、瀑布或混合框架,来指导整个项目流程。细节上,明确的沟通是指确保团队内外的每一位利益…

    2024年4月10日
    4500
  • oa行政办公

    OA行政办公系统将企业内部管理流程电子化、信息化,1、提升工作效率 2、减轻员工负担 3、优化沟通协作 4、增强数据安全 5、实现资源共享。 企业得以借助此系统整合资源,简化工作流程,由此加速决策过程。重点描述之一,为提升工作效率,OA系统通过自动化工作流程,减少手工操作,缩短了项目周期及处理时间,…

    2024年1月16日
    16000
  • 什么是全渠道营销,它与多渠道营销有何不同

    全渠道营销(Omnichannel Marketing)是一种深度整合线上线下多个销售与推广渠道的营销模式,旨在为消费者提供无缝和一致的购物体验。与多渠道营销相比,全渠道营销关注的是各个渠道之间的互动和融合,1、渠道的统一体验、2、数据的整合运用、3、客户互动和沟通的流畅性、4、库存与订单管理的效率…

    2023年11月27日
    93800
  • 总经理如何管理项目部

    为了确保项目得到高效率、高质量地完成,总经理需要掌握战略规划、资源协调、团队领导和风险管理等关键能力。在这些能力当中,战略规划尤为重要。总经理必须擅于从公司的整体战略出发,明确每个项目与公司目标的对齐方式,保证项目组的工作方向和公司的整体发展同步。他们需要根据企业的长远目标来规划项目,选择最符合公司…

    2024年4月10日
    4200
  • 为什么vscode文本看不了

    无法在VSCode中查看文本文件通常是由于文件编码不支持、VSCode版本过旧、插件冲突或者文件损坏等原因造成的。在这些原因中,文件编码不支持是最常见的问题。当遇到无法识别的编码格式时,VSCode可能无法正确显示文件内容。例如,如果一个文本文件是使用特定于操作系统或语言的编码(如某些特殊的中文编码…

    2024年4月3日
    8400
  • 云原生应用的持续集成和持续部署(CI/CD)是如何实现的

    云原生应用的持续集成和持续部署(CI/CD)是实现自动化开发流程的重要手段,能够加快软件发布周期、提高软件质量、增强客户体验。主体答案涵盖云原生应用在实现CI/CD的过程中运用的关键机制,包括1、微服务架构的采用;2、容器化技术的运用;3、自动化测试;4、基础设施即代码(IaC);5、持续监控及反馈…

    2023年11月15日
    37700
  • oa企联网

    标题:OA企业联网的作用与挑战 摘要 OA企业联网指的是组织内部利用信息技术构建的协作和通信网络,目的在于提高工作效率、降低成本、加强数据管理与安全等。这一概念对今天的企业运营至关重要。1、办公自动化系统的实现是其核心功能,使文件流转、审批等手续自动化,极大提升工作效率。2、它还能促进员工协作,通过…

    2024年1月11日
    26400

发表回复

登录后才能评论
注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部