后端岗位面试题更新 2026-08-05

请说明 Java Stream 的 peek() 方法的用途和副作用,并现场写一段代码验证它能否修改流中的元素。

小红书后端开发专业服务编码实现技术原理问题排查Java

考察说明

考察对 Stream 中间操作语义、函数式接口副作用的理解及编码验证能力

回答思路

  1. 准确说明 peek() 是中间操作,用于查看每个元素,通常用于调试
  2. 解释 peek() 接收 Consumer,其副作用(修改元素)依赖于元素可变性
  3. 编写代码演示:对于可变对象(如 List),peek 内修改对象属性会生效;对于不可变对象或重新赋值引用不会影响流后续操作
  4. 说明 peek() 不应依赖副作用来完成业务逻辑,因为其执行时机不定
  5. 代码展示正确处理,避免并发或短路操作导致的不确定性
本题已收录答题指导

本题附完整参考答案与评分标准

登录后可查看结构化答题指导;也可以直接开一场模拟面试,AI 面试官用本题实时追问并给出评分。