JAVA中的StringBuilder和StringBuffer适用的场景是什么

JAVA中的StringBuilder和StringBuffer适用的场景:StringBuilder 一般使用在方法内部来完成类似 + 功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer 主要用在全局变量中。

JAVA中的StringBuilder和StringBuffer适用的场景是什么-Worktile社区

一、StringBuffer

字符串变量(Synchronized,即线程安全)。如果要频繁对字符串内容进行修改,出于效率考虑较好使用 StringBuffer,如果想转成 String 类型,可以调用 StringBuffer 的 toString() 方法。

二、StringBuilder

字符串变量(非线程安全)。在内部,StringBuilder 对象被当作是一个包含字符序列的变长数组。java.lang.StringBuilder 是一个可变的字符序列,是 JDK5.0 新增的。此类提供一个与 StringBuffer 兼容的 API,但不保证同步。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候(这种情况很普遍)。

三、使用策略

1、基本原则:如果要操作少量的数据,用String ;单线程操作大量数据,用StringBuilder ;多线程操作大量数据,用StringBuffer。

2、不要使用String类的”+”来进行频繁的拼接,因为那样的性能极差的,应该使用StringBuffer或StringBuilder类,这在Java的优化上是一条比较重要的原则。

3、为了获得更好的性能,在构造 StringBuffer 或 StringBuilder 时应尽可能指定它们的容量。当然,如果你操作的字符串长度(length)不超过 16 个字符就不用了,当不指定容量(capacity)时默认构造一个容量为16的对象。不指定容量会显著降低性能。

4、StringBuilder 一般使用在方法内部来完成类似 + 功能,因为是线程不安全的,所以用完以后可以丢弃。StringBuffer 主要用在全局变量中。

5、相同情况下使用 StringBuilder 相比使用 StringBuffer 仅能获得 10%~15% 左右的性能提升,但却要冒多线程不安全的风险。而在现实的模块化编程中,负责某一模块的程序员不一定能清晰地判断该模块是否会放入多线程的环境中运行,因此:除非确定系统的瓶颈是在 StringBuffer 上,并且确定你的模块不会运行在多线程模式下,才可以采用 StringBuilder;否则还是用 StringBuffer。

延伸阅读

什么是Java String

 字符串常量。String 是不可变的对象, 因此在每次对 String 类型进行改变的时候,都会生成一个新的 String 对象,然后将指针指向新的 String 对象,所以经常改变内容的字符串较好不要用 String ,因为每次生成对象都会对系统性能产生影响,特别当内存中无引用对象多了以后, JVM 的 GC 就会开始工作,性能就会降低。

文章标题:JAVA中的StringBuilder和StringBuffer适用的场景是什么,发布者:小编,转载请注明出处:https://worktile.com/kb/p/37562

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

相关推荐

  • 影响进度管理的因素有哪些

    影响进度管理的因素有以下几点:1、人的影响;2、技术、方法和工艺的影响;3、设备、材料的影响;4、资金的影响;5、环境的影响。人的影响,项目经理、项目团队以及项目干系人都会对进度施加影响。 1、人的影响 人是项目任务执行的根本保障,对项目进度能够施加影响的主要人员包括: 项目经理:项目经理是项目管理…

    2022年11月30日
    73500
  • wiki如何使用

    使用wiki的方式有:1、登录Wiki;2、创建页面;3、编辑页面;4、添加链接;5、上传文件;6、使用标签;7、使用模板;8、版本控制。要开始使用Wiki,请先登录。通常,你可以在Wiki的主页上找到登录链接。在登录之前,你需要有一个账号。 1、登录Wiki 要开始使用Wiki,请先登录。通常,你…

    2023年2月26日
    1.9K00
  • dhcp服务异常

    DHCP(动态主机配置协议)服务异常通常是网络问题的一种表现,可能会导致设备无法自动获取IP地址和其他网络配置。本文将深入探讨:1、DHCP服务异常的常见原因;2、诊断和排查方法;3、解决方案和预防措施;4、DHCP服务的重要性。通过了解这些内容,可以更有效地识别和解决DHCP服务异常的问题。 1、…

    2023年8月10日
    1.5K00
  • Java中的SQL注入攻击如何防止

    在Java中预防SQL注入攻击主要采取以下措施:1、使用预处理语句PreparedStatement;2、彻底对用户输入执行校验与转义;3、采用对象关系映射(ORM)技术;4、限制数据库权限;5、采用存储过程;6、定期进行安全审计。 其中,使用预处理语句PreparedStatement 在防御SQ…

    2024年1月8日
    15800
  • oa如何选择

    标题:选择OA系统的关键考量因素 OA系统选择应依据以下核心因素:1、系统功能的全面性;2、用户体验的便利性;3、安全性与保密性;4、定制能力与扩展性;5、技术支持与服务质量;6、成本效益分析。这些核心因素为企业信息化建设指明方向,其中系统功能的全面性显得尤为重要。就细节而言,功能全面性意味着系统不…

    2024年1月16日
    9300
  • 进度计划横道图软件哪个好用

    进度计划横道图软件好用的有:1、Microsoft Project;2、WPS项目;3、MindManager;4、GanttProject。Microsoft Project是能够帮助用户轻松制作进度表横道图,同时还支持资源管理、成本管理等功能。 一、Microsoft Project Micro…

    2023年4月19日
    2.2K00
  • 移动oa办公系统免费版

    移动OA办公系统免费版不单提供基础的办公功能,如文档处理、沟通交流、日程管理,还能够支持企业实现远程办公的基本需求。普遍来说,免费版本将有一定的用户或功能限制,例如用户数量上限、存储空间额度、以及某些高级功能的缺失。免费版本通常足以应对中小型企业或刚起步的团队的基本办公需求,而且能够为企业节省成本。…

    2024年1月15日
    9700
  • oa系统是哪个公司的

    OA系统(Office Automation System)指办公自动化系统,是指运用计算机及网络技术来对办公室的信息进行收集、处理、存储和传输,以实现办公室的信息资料自动化、办公流程的简化以及办公室工作的高效化和智能化的一套综合应用系统。OA系统并非某个单一公司的专属产品,而是由众多软件开发公司根…

    2024年1月11日
    10100
  • 如何在云原生平台上部署机器学习模型

    云原生平台提供强大的基础设施支持,适合在其上部署机器学习(ML)模型以实现高效的运算和全球化的服务。部署ML模型的主体流程包括1、容器化ML模型;2、选择和配置云原生服务;3、持续集成和持续部署(CI/CD)流程的构建;4、服务的监控与优化。容器化有助于在不同环境间一致地部署ML模型。云服务选择侧重…

    2023年11月23日
    18700
  • 有效的进度管理技巧有哪些

    设立具体目标、制定切实可行的计划、优先级排序、有效时间分配、使用技术工具提高效率、定期评估进度、弹性应变是有效的进度管理技巧。例如,制定切实可行的计划,意在创建一份详尽的行动方案,它需包含具体任务、完成它们的步骤、截止日期及所需资源。在执行项目时,这份计划会指导每步工作,帮助管理资源,确保关键任务不…

    2023年12月26日
    18400

发表回复

登录后才能评论
站长微信
站长微信
电话联系

400-800-1024

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

分享本页
返回顶部