Scala面试题更新 2026-08-05

请解释 Scala 中的 case class,并对比它和普通 class 的区别,指出其典型使用场景。

技术原理Scala

考察说明

考查对 Scala 语言中 case class 概念及其与普通类差异的理解。

回答思路

  1. 【回答框架 1】case class 是 Scala 中一种特殊的类,默认不可变,自动生成 equals、hashCode、toString、copy 方法,并支持模式匹配。
  2. 【回答框架 2】与普通类的区别:case class 无需 new 即可创建实例,构造参数默认是 val,自动实现结构相等比较,而普通类默认引用相等。
  3. 【回答框架 3】case class 常用于建模不可变数据,配合模式匹配实现函数式编程风格。
  4. 【回答框架 4】注意 case class 的实例可以序列化,但不应滥用,比如内部包含大量可变状态时不适合作 case class。
  5. 【关键点 1】case class 默认不可变,参数为 val。
  6. 【关键点 2】自动生成 equals、hashCode、toString、copy。
  7. 【关键点 3】支持模式匹配和结构相等比较。
  8. 【关键点 4】无需 new 关键字直接创建。
  9. 【易错点 1】误以为 case class 是普通类,忽略其不可变性。
  10. 【易错点 2】在需要可变对象时使用 case class,导致设计不良。
  11. 【易错点 3】混淆结构相等和引用相等。