- 1
- 0
- 约6.01千字
- 约 8页
- 2026-08-26 发布于河北
- 举报
中级Java高频面试题及详细答案(真实企业版)
本套面试题适配2-5年Java开发工程师,覆盖面试高频核心考点,摒弃书面化套话,答案贴合实际项目开发和企业面试真实作答逻辑。
一、Java基础核心
1.==和equals的区别是什么?
==是比较运算符,既可以比较基本数据类型,也可以比较引用数据类型。基本类型比较的是数值本身,引用类型比较的是对象的内存地址。
equals是Object类的方法,默认情况下和==效果一致,也是比较对象地址。但大部分常用类(String、Integer、集合类)都重写了该方法,重写后比较的是对象的内容/数值,不再比较地址。
实际开发中,字符串、包装类对比内容,一律用equals;基本类型对比用==。
2.String、StringBuilder、StringBuffer的区别?
String:不可变字符序列,底层是被final修饰的字符数组(JDK9+为字节数组)。每次字符串拼接都会生成新对象,频繁拼接会产生大量无用对象,效率最低。适用于少量字符串操作场景。
StringBuffer:可变字符序列,方法加了synchronized锁,线程安全,但是并发场景下锁竞争会导致效率偏低。适用于多线程下频繁字符串拼接场景。
StringBuilder:可变字符序列,无锁、线程不安全,效率最高。日常开发单线程拼接字符串优先使用,
原创力文档

文档评论(0)