6.String、StringBuffer、StringBuilder区别及使用场景

String固定长度,引用的字符串内容无法改变

例如,String s = 'abc';

s = 'def';

那么 s 字符串对应的地址已经改变了

StringBuider 声明一个对象时,指向堆中的一块空间,包括两个属性 value 和 count

其中 value 属性类似动态数组,可以在地址不变的情况下动态添加内容

count 属性是数组长度,当数组内容达到最大值,会进行扩容,开辟一块新地址,旧内容拷贝到新地址

StringBuffer同理

StringBuffer JDK 1.0 开始,线程安全,效率低

StringBuilder JDK 1.5 开始,线程不安全,效率高

这是我整理的笔记,目前还在学习阶段,文章中可能有错误和不足,欢迎大家斧正!

相关推荐
杨杨杨大侠8 小时前
都能接模型、RAG 和 MCP,Java Agent 框架到底差在哪?
java
Thinker QAQ9 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
霸道流氓气质11 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
AOI小白新手上路11 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库
dishugj13 小时前
系统架构风险点、敏感点和权衡点的概念和区分
java·开发语言
苜蓿muxu13 小时前
常用代码命名规范
java
马优晨13 小时前
JAVA 中 VO 实体类是什么意思,为什么要做这个
java·开发语言·状态模式·java vo·java vo是什么
Baron X14 小时前
Eclipse Temurin 21 (JRE) Alpine 镜像获取、离线导入与推送操作
java·docker·eclipse·temurin
孙浩君14 小时前
我用 Spring Boot + xterm.js 写了个终端风格互动叙事游戏引擎:游戏即文件,上传一个 JSON 就能玩
java