Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

Java 常见的回调方式有哪些?

先说出你的答案

定义边界、关键机制、一个反例;P8题再补容量、失败与验证。

查看完整题解

参考回答

直接回答

回调就是把“完成某件事后要做的动作”交给另一段代码,在合适时机由它调用。Java 常见写法包括接口实现、匿名内部类、lambda 和方法引用;事件监听与 CompletableFuture 的完成处理也是常见使用场景。它是一种协作方式,不是独立的语言关键字。

讲清原理

同步回调可能在当前方法返回前执行;异步回调可能在另一个时刻、另一个线程执行。写成 lambda 不代表异步,方法名字带回调也不保证线程安全。

设计回调时需要说明执行线程、执行次数、是否保留回调对象,以及异常怎样传播。异步场景还要考虑超时和取消。否则,一段看起来很短的函数也可能让调用方长期等待,或在错误线程上修改共享状态。

例子与易错点

java.util.function.Consumer<String> onDone =
    value -> System.out.println("结果:" + value);
onDone.accept("完成"); // 结果:完成

这就是同步调用,没有自动创建线程。lambda 捕获局部变量时,变量需满足 final 或事实上 final 的要求;这不代表捕获对象内部的状态就不可变。

相关题:第 45 题、第 63 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。