后端岗位面试题 · 编码实现 · Java
题库中标记为“后端”的结构化面试题。
共 89928 道真题 · 当前筛选命中 1178 道 · 更新 2026-08-05
筛选题目已选:编码实现 · Java
考察点
技术栈
第 41 题请用synchronized和Object的wait/notify方法实现两个线程A、B交替顺序打印1到10的数字。 考察多线程协作中wait/notify的使用、共享状态控制与线程安全第 42 题请介绍创建线程的几种方式及其区别。 考察Java多线程基础知识与底层理解第 43 题请说明 Java Stream 的 peek() 方法的用途和副作用,并现场写一段代码验证它能否修改流中的元素。 考察对 Stream 中间操作语义、函数式接口副作用的理解及编码验证能力第 44 题请说说你常用的 Java 工具类,并举例说明它们的典型用途。 考察对常用 Java 工具类的熟悉程度及应用能力第 45 题请介绍你实际使用过的 Java 8 新特性。 考察 Java 8 核心特性的掌握程度与实际应用能力第 46 题实现线程安全的懒加载单例模式 考察并发编程中懒加载单例的实现方式与线程安全保证第 47 题反转字符串中的单词 考察字符串处理、边界条件和编码实现能力第 48 题请用代码实现一个自旋锁,并解释其适用场景。 考察自旋锁的编码实现及对适用性的理解第 49 题请用 Java 8 Stream 并行流对 1 亿条商品评论按情感分值(-1、0、1)分组,并统计每组数量,同时保证线程安全。 考察并行流在分组统计场景中的正确使用与线程安全处理第 50 题请介绍 Java 8 Stream 流的使用方式,并说明适合使用 Stream 的典型场景。 考察对 Stream API 的理解、实际使用经验和场景判断能力第 51 题请描述如何设计一个自定义注解,并说明它的实现原理及应用场景。 考察元编程能力和对注解运行机制的理解第 52 题如何封装一个自己的线程池,要求是:如果核心线程数不够,且线程数没有超过最大线程数,就生成一个临时线程执行(先执行后塞入等待队列的情景)? 考察自定义线程池执行策略的理解与实现,尤其是核心线程满时优先创建非核心线程而非放入队列的定制逻辑第 53 题请介绍 Java Stream API 的基本用法,并举例说明中间操作与终止操作的区别。 考察 Java Stream 基础、常用操作及执行机制理解第 54 题如何避免线程死锁?请结合具体方法说明。 考察死锁避免的实际策略与编码实践第 55 题请用代码演示一个最简单的死锁场景,并说明产生死锁的必要条件。 考察对死锁基本原理和并发编程基础知识的理解第 56 题如果有三个线程,一个只能打印a,一个只能打印b,一个只能打印c,如何确保有序? 考察多线程协同、顺序控制与同步机制的设计能力第 57 题Java Object类有哪些方法,分别是什么作用? 考察对Java基类Object核心方法的理解与记忆第 58 题在 Java 中,如何通过 if-else 实现基于传入参数决定不同代码执行顺序?请结合责任链模式说明其局限。 考察参数驱动分支实现及责任链对顺序控制的改进第 59 题如何在不使用注解和现成定时任务框架的情况下,实现一个定时任务? 考察底层定时任务实现原理、并发与资源管理能力第 60 题如何自定义异常类? 考察异常处理机制的理解与自定义异常的设计能力