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

腾讯Java基础专项面经:String不可变性、异常体系、IO流、反射与注解的坑

腾讯5级Android面经聊完(初级→架构师),进入专项系列。Java基础是每个级别都考的底层功夫。"String为什么不可变"这种题,背答案说"为了安全"就完了,真理解的会从内存模型、线程安全、hashCode缓存讲到字符串池。同一问题深度差五倍。今天8道题覆盖四大方向。

Q1:String为什么设计成不可变?

线程安全:不可变天然线程安全,多线程共享不需要同步。String是Java用得最多的类型,可变的话到处加锁性能灾难。

字符串池:相同内容的String共享一个对象("abc"全局只有一个)。不可变才能安全共享——可变的话一个线程改了其他线程全受影响。

hashCode缓存:创建时算一次hash就缓存了。作为HashMap的key性能极好,不用每次get重算。

安全性:大量API用String做参数(URL、文件路径、类名)。可变的话传入后被篡改会导致安全问题——Class.forName(className)如果className被改掉就加载恶意类。

设计哲学:值对象不可变,修改产生新对象,语义清晰。

Q2:String、StringBuilder、StringBuffer区别?什么时候用哪个?

String:不可变,每次拼接产生新对象。"a" + "b"编译器优化为StringBuilder,但循环里拼接不行——每次循环创建新对象。

StringBuilder:可变,非线程

http://www.jsqmd.com/news/1293260/

相关文章:

  • 杰理可视化SDK开发-在线串口DeBug调试教程
  • 网盘直链下载助手:解锁8大网盘高速下载的完整指南
  • 云原生GIS存储方案:MinIO+S3+iServer实践
  • LSTM门控机制解析与时间序列预测实战
  • 实测横评|花 3 小时手搓 PPT VS AI 三分钟出稿,智在 PPT 深度第三方测评,不吹不黑
  • LibreDWG终极指南:5个关键技巧掌握开源CAD文件处理
  • 如何用Python完整备份QQ空间历史记录:GetQzonehistory终极指南
  • 晶盾JD-SGP离子膜:边部稳定与极端适配实测 - 资讯在线
  • AI Agent、架构决策记录与工程上下文治理:团队如何把隐性约束留在仓库里
  • Unity开放世界流式加载实战:SECTR插件核心原理与性能优化
  • 3D模型文件管理革命:stl-thumb让你的STL文件可视化预览
  • 为什么92%的AI项目卡在MLOps落地?:全栈工具链选型避坑清单(2024最新Gartner评估矩阵)
  • 职业转型决策框架:从价值评估到离职实操全流程解析
  • Scroll Reverser:3分钟搞定Mac滚动方向个性化设置
  • Opus 5与Codex语音模式集成实战:从环境配置到生产部署
  • 零基础上手 OpenClaw 智能体,Windows 可视化部署完整步骤拆解(含安装包)
  • Kali Linux渗透测试侦察阶段工具与技术详解
  • 无源器件赋能工业电力稳定:思浙电气方案解析 - 资讯在线
  • TikTok如何通过Jetpack Compose实现代码精简与性能优化
  • 抖音无水印下载终极指南:douyin-downloader批量下载高清视频的完整教程
  • ESP32 PWM深度解析:从LEDC架构到多路舵机控制实战
  • Xshell终端工具:从SSH连接到高效运维的完整指南
  • 技术实战方案|差异化智能称重柜组合方案:大型制造车间 500 类线边小件物料数字化管控落地指南
  • 基于WebAssembly的跨平台游戏引擎架构设计与性能优化实践
  • 3大核心功能解析:COM3D2.MaidFiddler如何实现游戏角色实时编辑
  • 深度解析:JetBrains IDE试用重置机制的技术实现与架构设计
  • 工厂环境监测系统实战(四):前端监控大屏与实时数据展示
  • 2024年AI原生应用三大突破:对话交互、垂直模型与多模态
  • Windows任务栏透明化神器:TranslucentTB终极指南,三分钟打造个性化桌面美学
  • 知芽(Notebook-Skill) vs 有道宝库:谁才是真正的「中国版NotebookLM」