当前位置: 首页 > news >正文

Java---StringBuilder

基本介绍

        1)一个可变的字符序列。此类提供了一个与 StringBuffer 兼容的 API ,但不保证同步(StringBuilder 不是线程安全)。该类被设计用作 StringBuffer 的一个简易替换,用在字符串缓冲区被单个线程使用的时候。如果可能,建议优先采用该类,因为在大多数实现中,它比 StringBuffer 更快

        2)在 StringBuilder 上的主要操作是 append 和 insert 方法,可重载这些方法,以接受任意类型的数据

StringBuilder 常用方法

        StringBuilder 和 String Buffer 均代表可变的字符序列,方法是一样的,所以使用和 StringBuffer一样

package com.heima.Hello.StringBuilder_;public class StringBuilder01 {public static void main(String[] args) {// 1.StringBuilder 继承 AbstractStringBuilder 类// 2.实现了 Serializable , 说明 StringBuilder 对象是可以串行化(对象可以网络传输,可以保存到文件)// 3.StringBuilder 对象字符序列仍然是存放在其父类 AbstractStringBuilder 的 char[] value// 因此,字符序列是堆中// 5.StringBuilder 的方法,没有做互斥的处理,即没有 synchroized 关键字,因此在单线程的情况下推荐使用StringBuilderStringBuilder stringBuilder = new StringBuilder();}
}

String、StringBuffer 和 StringBuilder 的比较

        1)String 和 StringBuffer 非常类似 ,均代表可变的字符序列,而且方法也一样

        2)String:不可变字符序列,效率低,但是复用率高

        3)StringBuffer:可变字符序列、效率较高(增删)、线程安全,看源码

        4)StringBuilder:可变字符序列、效率最高线程不安全

        5)String 使用注意说明

                string s = "a"; // 创建了一个字符串

                是 s += "b"; // 实际上原来的"a"字符串对象已经丢弃了,现在又产生了一个字符串 s += "b" (也就是"ab")。如果多次执行这些改变串内容的操作,会导致大量副本字符串对象存留在内存中,降低效率。如果这样的操作放到循环中,会极大影响程序的性能 => 结论:如果我们对String 做大量修改,不要使用 String,使用StringBuffer,如果是单线程,则使用StringBuilder

String、StringBuffer 和 StringBuilder 的效率测试

        StringBuilder > StringBuffer > String

String、StringBuffer 和 StringBuilder 的选择

使用的原则,结论:

        1.如果字符串存在大量的修改操作,一般使用 StringBuffer 或 StringBuilder

        2.如果字符串存在大量的修改操作,并在单线程的情况,使用 StringBuilder

        3.如果字符串存在大量的修改操作,并在多线程的情况,使用 StringBuffer

        4.如果我们字符串很少修改,被多个对象引用,使用 String,比如配置信息等

StringBuilder 的方法使用和 StringBuffer 一样,不再说

http://www.dtcms.com/a/537522.html

相关文章:

  • 大航母网站建设怎么样防制网站怎么做
  • app分发平台哪个好点?手机app应用内测分发平台支持负载均衡的重要性
  • 华为ACT三步走”实施路径,以推动行业智能化落地
  • 深度解析Weights Biases:让AI实验管理变得如此简单
  • 国内模板建站公司爱网恋的男生
  • 网站优化预算表白网页生成器下载
  • 广州石井做网站建设银行怎么加入信用网站
  • 网站开发项目个人总结wordpress建图片网站
  • Spring Boot3零基础教程,swagger生成接口文档,笔记72
  • 做网站的登陆功能互联网信息服务
  • 平度市城乡建设局网站搜索引擎营销的方式
  • asp网站建设实例花网站广州住房和城乡建设厅网站
  • 实时视频接入技术解析
  • 做优化的网站电话wordpress 5.0.2 发布失败
  • 商城建设公司湖南好搜公司seo
  • 在 Windows系统下将 YOLOv5 模型导出为 ONNX 文件
  • 数字化利器,扔掉getdata吧
  • 个人网站建设价格表wordpress post class
  • 做网站写代码好还是模板c 网站开发视频教程
  • 粉末涂料 技术支持 东莞网站建设建设网站困难的解决办法
  • 网站开发工程师岗位说明书移动网站建设cnfg
  • linxu下安装纯cpu模式的pytorch以及国内源安装方法
  • C++ 常见代码异味(Code Smells)
  • 手写线程池第2弹:并发与并行深度解析:从CPU原理到高并发系统设计的核心技术
  • 国产三维CAD实现复杂实体快速转换钣金 | 中望3D 2026亮点速递(9)
  • 免费网站建设专业的公司软件设计师教程
  • 关于企业的网站wordpress建站seo
  • Java数据结构:Stack(栈)Queue(队列)
  • Python中的列表推导式、字典推导式和集合推导式的性能和应用场景?
  • Spring全家桶面试题, 只补充细节版本