职位题库

Java开发工程师面试题库

面向Java开发工程师相关面试,围绕Java、JVM、Java基础、MySQL、并发编程等主题展开练习,结合题目考察点、回答思路、参考答案和常见误区,梳理知识要点并练习清晰表达。

231 道题目建议用时 693 分钟专项面试练习

全部题目 231 道题

205

Spring 中的 Bean 默认是单例吗?单例 Bean 是线程安全的吗?请结合有状态和无状态场景说明。

考察对 Spring Bean 作用域和线程安全边界的理解,能否区分容器管理与对象状态。
206

String、StringBuilder、StringBuffer 有什么区别?各自适用于什么场景?

考察对字符串不可变性、可变字符串及线程安全实现的理解。
207

Redis 有哪些内存淘汰策略?在生产环境中如何选择和配置?

考察对 Redis 淘汰策略分类及业务选型能力的掌握。
208

JVM 中为什么常把初始堆和最大堆设置为相同大小?GC 是什么,内存溢出和内存泄漏有什么区别,线上如何定位是哪个方法导致的内存问题?

考察 JVM 内存管理、GC 概念以及线上内存问题定位的实操思路。
209

ThreadLocal在虚拟线程场景下会有什么问题?JDK如何规避?

考察候选人能否把ThreadLocal的经典知识迁移到虚拟线程这一新并发模型,理解副本数量随线程规模膨胀带来的内存风险,并了解ScopedValue的替代思路。
210

虚拟线程一定比平台线程好吗?什么场景下用虚拟线程反而更慢?

考察候选人是否理解虚拟线程的适用边界,能区分IO密集与CPU密集场景,并掌握pin住载体线程的成因与规避方式。
211

线程池的拒绝策略你生产环境用哪种?CallerRunsPolicy有什么致命副作用?

考察候选人是否理解拒绝策略背后的背压传导,能结合提交任务的线程上下文评估CallerRunsPolicy的风险,并给出自定义补偿方案。
212

泛型是什么?核心作用是什么?类型擦除会带来哪些问题?

考察候选人对Java泛型本质、类型擦除机制及其工程影响的理解深度,而非仅停留在语法层面。
213

为什么可达性分析需要暂停用户线程?整个分析过程都必须暂停吗?

考察对GC根节点枚举与并发标记一致性的理解,判断候选人是否真正理解STW的成因及现代GC的优化思路。
214

请说明static关键字的作用,并结合实际开发谈谈你在哪些场景使用过它。

考察对static修饰成员变量、方法、代码块、内部类及静态导入的理解,以及能否结合真实编码场景说明使用理由和潜在风险。
215

请说明Map的常见实现方式、HashMap的数据结构,以及Map接口常用的方法。

考察对Map体系、HashMap底层结构、哈希冲突处理、扩容机制和常用API的掌握程度,以及能否区分不同实现的适用场景。
216

请结合你平时的项目开发,谈谈Java中常见设计模式的使用场景。

考察对设计模式的理解是否停留在概念层面,能否结合真实业务说明选型理由、收益和代价。
返回面试题库