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

Java中的char、String、StringBuilder与StringBuffer 深度详解

Java 中的 char、String、StringBuilder 与 StringBuffer 深度详解从底层原理到最佳实践2026 最新版这四个类型是 Java 字符串处理的基石几乎每天都会用到。掌握它们能让你写出更高效、更安全的代码。1. char —— 字符的基本单位charc1A;// 正确charc2中;// 正确Unicodecharc3\u4E2D;// 十六进制 Unicode 表示“中”charc465;// 正确ASCII 值 65 对应 A核心特性底层类型16 位无符号整数2 字节范围 0 ~ 65535 ~\uFFFF。编码Java 使用UTF-16编码不是 UTF-8。注意事项Java 9 之后String内部可能使用byte[]Latin-1 优化但char始终是 2 字节。代理对Surrogate Pair一个 emoji如 可能需要两个char高低代理对。Stringemoji;System.out.println(emoji.length());// 输出 2不是 1System.out.println(emoji.codePointCount(0,emoji.length()));// 输出 1最佳实践日常很少单独使用char更多通过String.codePointAt()处理 Unicode 字符。2. String —— 不可变字符串Immutable2.1 核心特性不可变一旦创建内容无法修改。底层存储JDK 9private final byte[] value;private final byte coder;LATIN10或UTF161字符串常量池String Pool相同字面量只在堆中保存一份节省内存。线程安全天然线程安全不可变。2.2 常见“陷阱”与原理Strings1hello;Strings2hello;Strings3newString(hello);System.out.println(s1s2);// true 常量池System.out.println(s1s3);// false new 在堆中新建对象字符串拼接的性能陷阱Stringresult;for(inti0;i10000;i){resulta;// 每次都创建新 String 对象O(n²) 时间复杂度}编译器在编译期会把常量拼接优化为StringBuilder但循环中的不会优化。2.3 常用高效方法JDK 11 推荐String.isBlank()、String.lines()、String.strip()String.repeat(int count)String.formatted(Object... args)替代String.format3. StringBuilder —— 单线程高性能可变字符串核心特性可变字符序列底层是char[]JDK 9 是byte[]。非线程安全速度最快。初始容量 16超过时自动扩容newCapacity oldCapacity * 2 2。3.1 推荐使用场景循环拼接字符串单线程构建复杂字符串JSON、手写 SQL、日志等3.2 最佳实践写法// 推荐预估容量避免多次扩容StringBuildersbnewStringBuilder(128);for(inti0;i10000;i){sb.append(a);}Stringresultsb.toString();// 最后只调用一次 toString()链式调用StringjsonnewStringBuilder().append({\name\:\).append(name).append(\,\age\:).append(age).append(}).toString();4. StringBuffer —— 线程安全的可变字符串核心特性与StringBuilder几乎完全一样。所有公开方法都加了synchronized。性能比StringBuilder慢 20%~50%锁开销。4.1 什么时候必须用 StringBuffer多线程环境下共享同一个可变字符串对象。遗留代码老项目中大量使用。现代推荐单线程 →StringBuilder多线程 →StringBuffer或更好的选择ConcurrentLinkedQueue、CopyOnWriteArrayListString.join()等。5. 三者性能对比实测结论 2026操作StringStringBuilderStringBuffer循环 10 万次拼接最慢O(n²))最快较慢单线程简单拼接慢最快慢多线程共享修改安全不可变不安全安全内存占用较高新对象最低较低基准测试建议使用 JMHJava Microbenchmark Harness验证具体场景。6. 最佳实践总结生产级建议字符串常量→ 直接用双引号hello单线程大量拼接→ 优先StringBuilder并预估初始容量多线程共享可变字符串→StringBuffer多线程不共享→ 每个线程用自己的StringBuilder最终结果需要 String→ 只在最后调用一次toString()JDK 8推荐使用StringJoiner更优雅StringresultStream.of(a,b,c).collect(Collectors.joining(,));大字符串处理→ 考虑StringBuilderappend(char[])或零拷贝技术避免循环中使用String new String(literal)多此一举不必要的toString()调用7. 面试高频问题精讲String 为什么不可变安全性类加载、String Pool、线程安全、作为 HashMap Key 的可靠性。StringBuilder 和 StringBuffer 的区别线程安全 vs 性能底层扩容机制完全相同。new String(“abc”) 创建了几个对象编译期 1 个常量池 运行期 1 个堆中共 2 个。substring() 方法的性能JDK 7 vs JDK 8JDK 7 之前返回原数组子视图内存泄漏风险JDK 7 复制新数组安全但耗内存。掌握以上内容你对 Java 字符串的理解就达到了中高级水平。需要我继续补充以下任意内容随时说String源码深度解析value、hash、coderStringBuilder扩容源码 位运算详解JMH 性能测试完整代码Spring Boot 中字符串拼接的最佳实践与 Kotlin、Scala 字符串处理的对比祝你写出又快又安全的 Java 字符串代码

相关文章:

Java中的char、String、StringBuilder与StringBuffer 深度详解

Java 中的 char、String、StringBuilder 与 StringBuffer 深度详解 (从底层原理到最佳实践,2026 最新版) 这四个类型是 Java 字符串处理的基石,几乎每天都会用到。掌握它们,能让你写出更高效、更安全的代码。 1. cha…...

锁相环PLL:设计与进阶之路

锁相环PLL pll设计与进阶在电子工程的世界里,锁相环(PLL, Phase - Locked Loop)就像是一个神秘而强大的魔法师,默默地在各种电路系统中发挥着关键作用。无论是在通信领域,确保信号的稳定传输;还是在时钟生成…...

Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)

Java 部署:Jenkins Pipeline 构建 Java 项目(自动化)完整指南 在现代 Java 开发中,Jenkins Pipeline 是实现 CI/CD(持续集成/持续交付)的最主流方式。它将整个构建、测试、打包、部署流程写成代码&#xf…...

最近爆火的OpenClaw到底是什么?一文读懂RAG、MCP

最近爆火的 OpenClaw 到底是什么?一文读懂 RAG、MCP 2026 年初,GitHub 上一个开源项目以惊人速度爆火:短短 60 天内 Stars 突破 20 万,甚至超越了 React 成为史上增长最快的项目之一。它就是 OpenClaw(曾短暂叫 Clawd…...

MySQL 索引失效与慢查询优化:我被这些SQL坑了3次后总结的保命指南

MySQL 索引失效与慢查询优化:我被这些SQL坑了3次后总结的保命指南大家好,我是小柚🐾。今天来聊聊我在MySQL索引上踩过的那些坑相信很多同学和我一样,觉得只要加了索引查询就会快,结果实际项目上线后,某些SQ…...

GitHub 热榜项目 - 日榜(2026-03-15)

GitHub 热榜项目 - 日榜(2026-03-15) 生成于:2026-03-15 统计摘要 共发现热门项目: 10 个 榜单类型:日榜 本期热点趋势总结 本期 GitHub 热榜呈现出 AI Agent 生态向纵深发展的显著趋势,核心热点聚焦于 Agentic 开发范式与上…...

腾讯“龙虾”产品矩阵出击,AI 市场风云再起

腾讯“龙虾”产品矩阵:多面出击的办公新势力近期,腾讯一反常态地掀起了“龙虾”热潮,迅速推出了一系列相关产品。其中,被称为腾讯版“免部署小龙虾”的办公工具 WorkBuddy,支持一键启动,并将 AI 代理能力接…...

2026 AWE:具身智能机器人开启家庭服务新时代

追觅“轮椅机器人”:补齐家庭清洁与出行短板在 2026 年 AWE 展会上,追觅包下七千平方米的 E7 馆展示众多新品。其“轮椅机器人”引人注目,它依靠四个轮子能稳定快捷地在卧室和阳台间移动,老人还能当轮椅使用。此外,它配…...

AWE 2026:“新人车家”时代,机器人引领家电消费新变革

机器人闪耀 AWE 2026,“新人车家”概念全新登场2026 年 3 月 12 日,AWE 2026 在上海新国际博览中心开幕。作为全球三大家电及消费电子展之一,此次展会传统家电品类齐聚,更有众多机器人亮相。海信发布管家机器人 Savvy,…...

值得买商品详情页前端性能优化实战

值得买商品详情页前端性能优化实战一、背景与挑战值得买(SMZDM)作为导购电商平台,商品详情页具有以下特点:内容极其丰富:包含商品标题、价格走势、优惠信息、用户晒单、评测文章、参数对比等多个模块社区属性强&#x…...

Cocos2d-x Lua 游戏前端工程架构深度解析

本文基于一个真实的商业游戏项目,详细分析了基于 Cocos2d-x 3.10 引擎的 Lua 游戏前端工程架构。涵盖项目结构、技术架构、网络通信、游戏模块、资源管理等多个维度,为游戏开发者提供完整的工程参考。## 一、项目概览| 项目信息 | 详情 ||---------|----…...

nt!_DEVICE_NODE结构中的ResourceRequirements结构类型为_IO_RESOURCE_REQUIREMENTS_LIST

nt!_DEVICE_NODE结构中的ResourceRequirements结构类型为_IO_RESOURCE_REQUIREMENTS_LIST0: kd> !DevNode 0x899c1008 6 DevNode 0x899c1008 for PDO 0x899c1de0Parent 0x899c5850 Sibling 0000000000 Child 0x899875a8 InstancePath is "ACPI_HAL\PNP0C08\0&quo…...

!devnode 扩展显示设备树中节点的相关信息的一个例子中的CmResourceList和BootResourcesList和IoResList

!devnode 扩展显示设备树中节点的相关信息的一个例子中的CmResourceList和BootResourcesList和IoResListCmResourceListBootResourcesList IoResList!devnode 扩展显示设备树中节点的相关信息。 dbgcmd!devnode Address [Flags] [Service] !devnode 1 !devnode 2参数地址 指定…...

数字化智能工厂MES规划建设方案:整体规划与架构、基于RFID的全流程追溯、物联网与数据可视化、预期效益与实施

该方案以RFID技术为核心,通过“无感知”数据采集和在线协同,将生产指令、质量标准和异常响应直接落地到工位,有效解决了制造过程中信息滞后、追溯困难的问题。 1000余份数字工厂合集(PPTWORD):智能工厂工业…...

【69页PPT】全生命周期数字健康智慧医共体解决方案:“1”朵健康云、“3”大核心应用、“N”类服务应用迭代、区域医院智慧管理平台...

本方案以“健康云”和大数据中心为核心,构建市县级智慧医共体。通过开放平台整合医疗资源,实现数据互联互通与业务协同。方案提供从临床辅助、运营决策到居民服务的全周期应用,旨在打破信息孤岛,提升区域医疗服务效率与管理水平&a…...

【AI应用出海】

AI应用出海 商品出海的成功案例通常涉及多方面的策略和技术支持。以下是一些典型案例: 案例1:跨境电商平台 某电商平台利用AI技术优化商品推荐和定价策略,通过分析海外用户行为数据,实现精准营销。该平台在东南亚市场增长迅速&…...

PyCharm:设置保存时自动格式化代码

文件-》设置:在左侧找到工具-》保存时的操作,在右侧窗口中勾选“重新设置代码格式”:...

学长亲荐!AI论文平台 千笔ai写作 VS speedai,专科生写论文更轻松!

随着人工智能技术的迅猛迭代与普及,AI辅助写作工具已逐步渗透到高校学术写作场景中,成为专科生、本科生、研究生完成毕业论文不可或缺的辅助手段。越来越多面临毕业论文压力的学生,开始依赖各类AI工具简化写作流程、提升创作效率。但与此同时…...

专科生也能用!千笔,倍受青睐的AI论文写作软件

你是否曾为论文选题发愁?是否在撰写过程中感到思路混乱、资料难找?又或者反复修改却仍担心查重率和格式问题?这些困扰,几乎成了每个学生的“毕业必修课”。而如今,一款专为学生打造的AI论文写作工具——千笔AI&#xf…...

2026年专科生必看!学生热捧的降AIGC平台 —— 千笔·专业降AI率智能体

在AI技术迅速渗透学术写作领域的今天,越来越多的学生和研究人员开始依赖AI工具提升写作效率。然而,随之而来的“AI率超标”问题也愈发严峻——随着查重系统不断升级,AI生成内容的痕迹被更加精准地识别,论文一旦被判定为AI痕迹过重…...

MySQL迁移到金仓的集合类型支持实践:CREATE TYPE + SET 的兼容实现

MySQL迁移到金仓的集合类型支持实践:CREATE TYPE SET 的兼容实现 在当前信创加速落地的背景下,金仓数据库(KingbaseES)因其对MySQL生态的深度适配能力,正被政务、金融、能源等关键行业纳入核心系统技术评估范围。尤其…...

COMSOL 助力燃料电池冷启动仿真:探索低温下的运行奥秘

COMSOL 燃料电池,冷启动仿真 低温质子交换膜燃料电池冷启动仿真模型,cold start,可仿真包括冰的形成过程,温度分布,电流分布,物质浓度分布,速度压力分布以及膜中水分布,可提供相关方…...

Vibe Coding 踩了 84 亿 Token 的坑之后,我总结了这 8 条生存法则

你的 Vibe Coding 为什么总在最后 20% 崩掉? 相信你有过这种体验: 开局顺滑,AI 刷刷刷地出代码,感觉自己要起飞了。到了项目中后期,Bug 开始出现,你让 AI 修,它修完这里坏那里;再修&…...

YOLO26改进86:全网首发--c3k2模块添加DynamicFilter模块

论文介绍 配备多头自注意力机制(MHSA)的模型在计算机视觉领域已取得显著性能。这类模型的计算复杂度与输入特征图像素数量的平方成正比,导致处理速度较慢,尤其在处理高分辨率图像时更为明显。 为解决这一问题,研究者提出新型令牌混合器作为MHSA的替代方案:基于快速傅里叶…...

【最全】2026年OpenClaw(Clawdbot)摸鱼人9分钟搭建及使用教程

【最全】2026年OpenClaw(Clawdbot)摸鱼人9分钟搭建及使用教程。OpenClaw是什么?OpenClaw能做什么?OpenClaw怎么部署?OpenClaw(前身为Clawdbot/Moltbot)作为开源、本地优先的AI助理框架&#xff…...

跨境电商WMS的生命周期的庖丁解牛

跨境电商 WMS (Warehouse Management System,仓储管理系统) 的生命周期,是实物履约效率、库存数据精度、作业成本控制的三重演进。 与 ERP 关注“生意逻辑”、TMS 关注“运输链路”不同,WMS 的核心是**“库内作业”。在跨境场景下&#xff0c…...

跨境电商TMS的生命周期的庖丁解牛

跨境电商 TMS (Transportation Management System,运输管理系统) 的生命周期,是物流履约能力、成本控制精度、数据可视化程度的三重演进。 与 ERP 关注“订单与资金”不同,TMS 的核心是**“货的流动”**。在跨境场景下,这种流动跨…...

实证分析中的代理变量:理论基础与应用案例

温馨提示:若页面不能正常显示数学公式和代码,请阅读原文获得更好的阅读体验。 New! 搜推文,找资料,用 lianxh 命令: 安装: ssc install lianxh, replace 使用: lianxh 合成控制  …...

Linux全新安装后只跑这5条命令,从几小时折腾到几分钟搞定,效率直接起飞

过去一年,我因为评测新发行版、测试硬件兼容性,重装Linux系统超过15次。以前每次重装都要花半天时间:更新系统、换镜像源、一个个敲命令装软件、重新配终端主题、设置备份……折腾到头晕眼花。 现在呢?全新安装完系统后,我只跑5条核心命令(加上几行辅助操作),整个过程…...

交稿前一晚!降AIGC工具 千笔·降AI率助手 VS 灵感风暴AI,专科生专用

在AI技术迅速发展的今天,越来越多的专科生开始借助AI工具辅助论文写作,以提升效率和内容质量。然而,随着学术查重系统对AI生成内容的识别能力不断提升,论文中的“AI痕迹”和“重复率”问题也愈发突出。许多学生在交稿前夜才发现论…...