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 开始,线程不安全,效率高

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

相关推荐
Nebula_g6 分钟前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
小强库计算机毕业设计2 小时前
SpringBoot+Vue3 学生宿舍管理系统实战
java·spring boot·后端·vue·学生宿舍管理系统
李冰然2 小时前
深入Java集合框架:HashMap源码解析(JDK 8)
java
人道领域3 小时前
【0-1的agent进阶篇】RAG:从Embedding到检索增强生成的底层逻辑
java·embedding·agent·rag
桦说编程4 小时前
盘点并发集合里那些容易误判的行为
java·后端·性能优化
IT爱学堂5 小时前
java版数据结构和算法+AI算法和技能学习指南
java·开发语言
evans在进步5 小时前
LeetCode 394:字符串解码——Java 单栈模拟与嵌套解析详解
java·python·leetcode
AI人工智能+电脑小能手6 小时前
大白话说Java设计模式-17-装饰器模式(源码剖析篇)
java·spring·设计模式·装饰器模式·源码分析·io流
m0_547486666 小时前
《Java程序设计与实践 》全套PPT课件2026
java·开发语言
土司大王7 小时前
LeetCode hto100——字母异位词分组
java·算法·leetcode