Lambda 中的 final 变量与 effectively final 变量是什么?
What are final variables and effectively final variables in lambdas?
题目类型: 技术面试题
这是一道技术面试题,常见于澳洲IT公司面试中。
难度: medium
分类: programming, java
标签: final, effectively final, Closure
参考答案摘要
核心答案 在 Java Lambda 中,捕获外部局部变量时要求该变量是 final 或 effectively final 。 定义 final :显式用 final 声明,赋值后不可再修改。 effectively final :没有写 final ,但在初始化后 从未被重新赋值 ,编译器把它当作“等效 final”。 原因是 Lambda 可能在不同时间/线程执行,需要确保捕获变量的一致性。
答题技巧
技术面试题建议先理清思路再作答,从基础概念讲起,逐步深入。可以结合实际项目经验解释技术原理,展示你的理解深度和实践能力。
本题提供 STAR 原则详细解答和技术解析,登录匠人学院学习中心即可查看完整答案、收藏题目并进行模拟面试练习。