哔哩哔哩Java后端高频面试题及详细答案(真实面试版).docxVIP

  • 0
  • 0
  • 约6.87千字
  • 约 8页
  • 2026-10-21 发布于河北
  • 举报

哔哩哔哩Java后端高频面试题及详细答案(真实面试版).docx

哔哩哔哩Java后端高频面试题及详细答案(真实面试版)

本套题目整理自B站历年校招、社招、实习真实面试场景,聚焦后端核心考点,答案采用程序员日常面试口语化表述,贴合面试官考核标准,规避书面模板化话术,覆盖基础、集合、JVM、多线程、数据库、框架、实战场景全模块。

一、Java基础核心(B站必问基础考点)

1、String、StringBuilder、StringBuffer的区别?日常开发怎么选型?

三者核心差异集中在可变性、线程安全、性能三个维度。

首先是可变性,String是不可变字符串,JDK9之前底层是final修饰的char数组,JDK9及之后改成byte数组,一旦赋值不能修改,每次拼接、修改都会生成新对象;而StringBuilder和StringBuffer底层没有final修饰,属于可变字符串,修改操作直接操作原对象,不会频繁创建新实例。

然后是线程安全,StringBuffer所有修改方法都加了synchronized锁,多线程环境下安全,但加锁会带来性能损耗;StringBuilder没有加锁,线程不安全,但是执行效率最高;String不可变,天然线程安全。

最后是选型:单线程场景下优先用StringBuilder,性能最好;多线程字符串拼接场景用StringBuffer;字符串内容固定、频繁查询、作为常量参数时

文档评论(0)

1亿VIP精品文档

相关文档