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

[Java基础]StringBuilder解析

StringBuilder简单总结与源码预览。

之前写StringBuilder对象默认简写为sb,被说是骂人不让用了,现在写成strBuilder了。大家一般写什么呢

StringBuilder预留空间设计

已知Redis的String结构是通过预留空间的形式来避免频繁地分配空间。
那么Java中有没有类似的设计呢?有的,StringBuilder就是
在这里插入图片描述
在append方法可以看到有一个经典的扩容机制。在这里插入图片描述在这里插入图片描述

StringBuilder作为栈使用

栈是一种先进后出的结构,StringBuilder的方法可以做到模拟栈的实现。

  1. 栈的 push 操作
    • StringBuilder.append(char c):将字符追加到末尾,相当于栈的 push 操作。
    • 例子:sb.append(‘a’) 就像把 ‘a’ 压入栈顶。
  2. 栈的 pop 操作
    • StringBuilder.deleteCharAt(int index) 或 StringBuilder.setLength(int newLength):删除末尾字符,相当于栈的 pop 操作。
    • 常用方式:sb.setLength(sb.length() - 1) 删除最后一个字符。
  3. 栈的 peek 操作
    • StringBuilder.charAt(int index):访问末尾字符,相当于栈的 peek。
    • 例子:sb.charAt(sb.length() - 1) 获取栈顶字符。
  4. 其他便利性
    • StringBuilder 直接支持字符串操作,最终可以通过 toString() 转换为结果字符串。
    • 它是动态的,无需预先分配固定大小(不像数组实现的栈)。

StringBuilder使用时机

从Java 1.5开始 单行或少量 (2~3个)String 拼接会被编译器优化为 StringBuilder,性能差异不大。

循环或动态拼接用 StringBuilder,避免性能瓶颈。

相关文章:

  • swift菜鸟教程11-12(数组与字典)
  • 使用django实现windows任务调度管理
  • 怎么样在Windows系统上安装 的 WPS JS 插件
  • AUTO-DL 910B + mindspeed-llm 4层DeepSeek V3微调
  • MQTT的构成、使用场景、工作原理介绍
  • EAL4+ vs EAL7:高安全场景下的等级选择策略
  • 面向对象高级(1)
  • 获取git分支间差异文件列表
  • QEMU学习之路(6)— RISC-V 启动Linux
  • 技术分享|iTOP-RK3588开发板Ubuntu20系统旋转屏幕方案
  • 蓝桥杯 15g
  • Matlab 电机激励模型和仿真
  • Linux上位机开发实践(mcu模块的补充应用)
  • 【常用功能】下载文件和复制到剪切板
  • Flink的 RecordWriter 数据通道 详解
  • vue2 el-element中el-select选中值,数据已经改变但选择框中不显示值,需要其他输入框输入值才显示这个选择框才会显示刚才选中的值
  • 【2】安装Nodejs-Nodejs开发入门
  • 直播电商革命:东南亚市场的“人货场”重构方程式
  • GNSS静态数据处理
  • 如何将网页保存为pdf
  • 做网站优化费用/站长工具seo查询5g5g
  • win10 电脑做网站服务器吗/百度推广平台登录入口
  • 网站服务器的搭建/网站推广网络推广
  • 网站子目录怎么做/在线科技成都网站推广公司
  • 手机网站开发解决方案/免费建站网站大全
  • 建行官方网站登录/谷歌推广费用