String 核心方法 面试高频考点 📅 发布时间:2026/7/8 3:48:43 👁️ 浏览次数: 一 核心方法1. 基础判断 / 比较2. 字符串操作3. 类型转换二 注意事项 面试常问考点1. 不可变性的优点2. 不可变性的缺点3. 字符串拼接的性能对比面试高频4. equals VS 面试必考5. 常量池相关面试题6. 其他易错点7. 简单总结一 核心方法1. 基础判断 / 比较方法用途示例equals(Object obj)比较字符串内容面试必考abc.equals(abc) → trueequalsIgnoreCase()忽略大小写比较内容Abc.equalsIgnoreCase(abc) → true比较对象地址易错点见上文常量池示例isEmpty()判断是否为空字符串长度为 0.isEmpty() → truecontains(CharSequence s)判断是否包含子串abcd.contains(bc) → truestartsWith(String prefix)判断是否以指定前缀开头abcd.startsWith(ab) → trueendsWith(String suffix)判断是否以指定后缀结尾abcd.endsWith(cd) → true2. 字符串操作方法用途示例length()获取字符串长度abc.length() → 3charAt(int index)获取指定索引的字符索引从 0 开始abc.charAt(1) → bsubstring(int beginIndex)截取子串从 beginIndex 到末尾abcd.substring(1) → bcdsubstring(int begin, int end)截取子串左闭右开abcd.substring(1,3) → bcreplace(CharSequence old, CharSequence new)替换子串abac.replace(a, x) → xbxcreplaceAll(String regex, String replacement)正则替换a1b2.replaceAll(\\d, ) → absplit(String regex)按正则分割成字符串数组a,b,c.split(,) → [a,b,c]trim()去除首尾空白字符JDK 11 用strip() abc .trim() → abctoUpperCase()/toLowerCase()转大写 / 小写Abc.toUpperCase() → ABCconcat(String str)拼接字符串等价于但效率低ab.concat(cd) → abcd3. 类型转换方法用途示例valueOf(Object obj)将任意类型转为字符串静态方法String.valueOf(123) → 123toCharArray()转为字符数组abc.toCharArray() → [a,b,c]getBytes()转为字节数组默认编码abc.getBytes() → [97,98,99]parseXxx(String s)字符串转基本类型如Integer.parseInt()Integer.parseInt(123) → 123二 注意事项 面试常问考点1. 不可变性的优点线程安全不可变对象天生线程安全无需同步可哈希哈希值缓存hashCode()计算一次后缓存适合作为 HashMap 的键常量池复用节省内存。2. 不可变性的缺点频繁修改字符串如拼接会创建大量临时对象导致性能下降、GC 压力大。✅ 解决方案使用StringBuilder非线程安全或StringBuffer线程安全效率低。3. 字符串拼接的性能对比面试高频结论少量拼接用 即可 代码简洁循环 / 大量拼接必须使用StringBuilder// 方式1 拼接编译后自动优化为 StringBuilder但循环中仍低效 String s ; for (int i 0; i 1000; i) { s i; // 每次循环创建新 StringBuilder 和 String 对象 } // 方式2手动使用 StringBuilder推荐 StringBuilder sb new StringBuilder(); for (int i 0; i 1000; i) { sb.append(i); // 仅操作一个对象无临时垃圾 } String result sb.toString();4. equals VS 面试必考equals:String 重写了Object的equals方法比较字符串内容是否相等空指针规避推荐用常量字符串调用equals如(abc).equals(s)避免s为null时抛异常。:比较对象的内存地址引用是否指向同一对象对于基本类型比较值对于引用类型比较地址。5. 常量池相关面试题问题1:String s new String(abc)创建了几个对象✅答案1 个或 2 个若常量池已存在 abc → 仅在堆创建 1 个对象若常量池无 abc → 先在常量池创建 1 个再在堆创建 1 个共 2 个。问题2:String s1 a b c;和String s2 abc;是否相等✅答案相等s1 s2 → true原因编译期优化abc直接拼接为 abc存入常量池s1 和 s2 指向同一对象。问题3:String s1 new String(a) new String(b);s1.intern();String s2 ab;s1 s2✅JDK 1.7 答案trueintern () 不再复制对象而是将堆对象的引用存入常量池✅JDK 1.6 答案falseintern () 复制常量到永久代s2 指向永久代对象s1 指向堆对象问题4为什么 StringBuilder 比 StringBuffer 快StringBuffer 的所有核心方法如append、insert都被synchronized修饰保证多线程安全但加锁 / 解锁会带来性能开销StringBuilder 去掉了同步锁单线程下效率更高是日常开发的首选问题5什么时候用StringBuffer?仅当多线程环境下需要修改字符串时使用如多线程日志拼接、多线程生成动态字符串单线程场景下用 StringBuilder 即可没必要为线程安全付出性能代价。问题6String 、 StringBuilder、StringBuffer 选型原则面试必答✅答案字符串操作场景下是否需要频繁修改否仅赋值 / 比较用String是拼接 / 修改思考是否是多线程是用StringBuffer否用StringBuilder问题7以下代码在循环中拼接字符串哪种效率最高为什么// 方式1 String s ; for (int i 0; i 10000; i) { s i; } // 方式2 StringBuffer sb new StringBuffer(); for (int i 0; i 10000; i) { sb.append(i); } // 方式3 StringBuilder sb new StringBuilder(10000); for (int i 0; i 10000; i) { sb.append(i); }✅答案方式3效率最高方式 1s i编译后会自动创建 StringBuilder但每次循环都新建一个产生大量临时对象GC 压力大方式 2StringBuffer 是线程安全的但加锁导致效率低于方式 3方式 3手动创建 StringBuilder 且指定初始容量无锁、无扩容开销效率最高。6. 其他易错点String是引用类型不是基本类型面试常考区分nullvs 空字符串null表示对象不存在表示对象存在但内容为空调用null的equals/length()会抛NullPointerExceptionsplit方法的正则陷阱如分割.需要转义split(\\.)分割|需要split(\\|)JDK 9 优化String 底层从char[]改为byte[] 编码标识LATIN-1 占 1 字节UTF-16 占 2 字节节省内存。7. 简单总结核心特性String 是不可变的字符序列底层依赖字符 / 字节数组通过常量池实现内存复用核心用法重点掌握equals、substring、replace、split等方法区分和equals的使用场景面试重点不可变性原理、常量池机制、字符串拼接性能vsStringBuilder、intern()方法的作用核心区别String不可变StringBuilder 非线程安全高效StringBuffer 线程安全低效选型原则单线程大量修改StringBuilder多线程用StringBuffer少量操作 / 常量用String性能优化创建StringBuilder / StringBuffer 时指定初始容量避免频繁扩容
动环监控的优势是什么?它如何助力机房运维管理的智能化升级? 动环监控提升机房运维管理效率的核心优势 动环监控通过实时数据采集与分析,显著提升了机房运维的管理效率。其一,用户得以通过数据集成,观察到供配电柜、UPS、精密空调等设备的运行状况,形成全局视角。这种集成不仅减少了操作复杂… 2026/7/6 2:10:59
喷水装置(贪心) 题目描述Time Limit: 1000 ms Memory Limit: 256 mb长 米,宽 米的草坪里装有 个浇灌喷头。每个喷头都装在草坪中心线上(离两边各 米)。我们知道每个喷头的位置(离草坪中心线左端的距离),以及它能覆盖到… 2026/7/6 13:31:34
深度测评2026年三亚地方小吃推荐榜单,打卡必试的顶级海鲜美食 在2026年,我们为您呈现三亚地方小吃推荐榜单,囊括了必试的顶级海鲜美食。探索三亚干锅黄骨鱼、清蒸石斑鱼的鲜美与独特风味,品尝芥末大虾和糟粕醋煮海鲜等地方特色。同时,推荐本地热打卡海鲜店与海南特产,带您体验不可… 2026/7/6 23:46:52
零基础用AI建站工具做网站的极速上手教程(可照做) 纯小白也能学会:手把手教你用AI建站工具10分钟搭好官网如果你今天刚听说“AI建站工具”,完全不懂代码,甚至连域名是什么都一知半解,但又迫切想给自己刚开的小店、工作室或者个人品牌弄一个网站,那么这篇教程就是为你准… 2026/7/8 14:18:02
挑战重重!竟能在 Atari Jaguar 上运行 Linux,是如何做到的? 目录Atari Jaguar 究竟是什么?为什么偏偏是 Linux?jmp _linux?jmp _linux 实际涉及的内容Linux 启动所需条件用户空间供尝试者参考的杂项配置文件Atari Jaguar 究竟是什么?Atari Jaguar 于 1993 年 11 月在北美发布,凭… 2026/7/8 14:18:02
From descent to touchdown 全程下降着陆 / 从再入到稳稳落地 From descent to touchdown 一、音标 from /frəm/ descent /dɪˈsent/ to /tuː/ touchdown /ˈtʌtʃdaʊn/ 整句连读:/frəm dɪˈsent tuː ˈtʌtʃdaʊn/ 二、词义拆解(航天/航空专业释义) descent /dɪˈsent/ n. 下降、再入减速阶段… 2026/7/8 14:16:01
centos7.9版本升级ssh OpenSSH 9.8p1 源码 OpenSSL 1.1.1w 源码包以及安装升级回滚文档 此包专为 **Anolis OS 7.9 x86_64** 构建,也兼容 CentOS 7 / EulerOS 2.0 SP2 等基于 RHEL 7 的系统编译依赖 RPM 来自 CentOS 7 vault 镜像,与 Anolis OS 7.9 二进制兼容OpenSSL 安装到独立路径,不影响系统原有 OpenSSL如目标系统已有部分编… 2026/7/8 14:14:01
基于C语言实现(控制台)中小型饭店的点餐系统 ♻️ 资源 大小: 1.12MB ➡️ 资源下载:https://download.csdn.net/download/s1t16/87450279 中小型饭店的点餐系统 实验项目成果展示: (一) 项目介绍 本系统旨在为顾客提供包括餐厅座位预定、菜单展示、订餐下单、结账在内的完整自助式… 2026/7/8 14:12:00
爆肝万字!C++ Stack/Queue/Priority_queue 从入门到源码手撕,仿函数 + 容器适配器 + 二叉堆,面试吊打 99% 人! 栈和队列没有迭代器,他们只是容器适配器,不是容器。容器才有迭代器 文章目录栈Stack头文件:stack本质成员函数实现stack.h按需实例化:队列queue本质成员函数实现queue.hdeque双端队列成员函数priority_queue优先级队列本质头文件&… 2026/7/8 14:12:00
BetterNCM安装器:高效管理网易云插件的最佳选择 BetterNCM安装器:高效管理网易云插件的最佳选择 【免费下载链接】BetterNCM-Installer 一键安装 Better 系软件 项目地址: https://gitcode.com/gh_mirrors/be/BetterNCM-Installer 还在为网易云音乐插件的繁琐安装流程而烦恼吗?BetterNCM安装器是… 2026/7/8 0:02:48
运动控制系统安全设置对比:ECI3808的3种限位保护与急停逻辑实现 运动控制系统安全机制深度解析:限位保护与急停逻辑的设计哲学在精密制造与自动化领域,运动控制系统的安全设计绝非简单的功能堆砌,而是一套融合了机械工程、电气原理和软件算法的防御体系。当一台数控机床以每分钟数万转的速度运转࿰… 2026/7/8 0:06:48
AI大模型应用开发:小白也能抓住的红利风口,收藏这篇入门指南! 文章指出,虽然微软等科技巨头在裁员,但英伟达等公司却在积极扩招AI相关人才,尤其是具身智能、仿真等领域。AI行业正在经历结构性调整,传统岗位被淘汰,而大模型应用开发等新岗位需求旺盛。对于想转行或学习AI的普通人来… 2026/7/8 0:10:49
6个月转型AI工程师:实战路径与核心技能 1. 项目概述:6个月转型AI工程师的可行性路径在2023年大模型技术爆发的背景下,AI工程师岗位需求同比增长217%(LinkedIn数据)。不同于传统算法工程师需要3-5年培养周期,现代AI工程师更侧重工程化落地能力。我在硅谷科技公… 2026/7/7 11:26:57
TPAFE0808与PIC18F87K22的多通道信号采集方案 1. 项目背景与核心需求在工业自动化、医疗设备和科研仪器等领域,多通道信号采集与系统监测是基础且关键的技术需求。传统方案往往面临通道数量不足、信号调理复杂、系统集成度低等问题。TPAFE0808作为一款8通道模拟前端芯片,与PIC18F87K22微控制器的组合… 2026/7/7 11:26:57
STC3115与PIC18LF26K80构建高精度电池管理系统 1. STC3115与PIC18LF26K80在电池管理系统中的核心价值在现代电子设备中,电池管理系统(BMS)的重要性不亚于设备的核心处理器。STC3115作为一款高精度电池电量监测IC,与PIC18LF26K80微控制器的组合,构成了一个既能精确监控又能智能管理的完整解… 2026/7/7 11:26:58