Any
Any 类是所有类的超类,是 abstract 类,它有如下方法:!=(), ==(), equals(), hashCode(), toString(), asInstanceOf(), isInstanceOf(),其有两个子类:
AnyVal: 是 abstract 类,对于直接类型的 scala 封装类,如 Int、Double 等,其是它们的基类AnyRef: 是 trai,对于引用类型,其是它们的基类,包含了 java 的 Object 类的一些方法,比如notify(), wait(), finalize(),可以直接当做 java 的 Object 来使用
Nothing
Nothing 是所有类的子类,是一个类,其没有对象,但是可以用来定义类型。作用主要有:
- 一个空的collection
- 用于标记不正常的停止或者中断
1 | scala> val l:List[Int] = List[Nothing]() |
Null
Null 是所有 AnyRef 的子类,是所有继承了 Object 的类的子类,所以 Null 可以赋值给所有的引用类型(AnyRef),不能赋值给值类型。null是其唯一的对象。
1 | val x = null // x: Null |
Nil
Nil 是一个空的 List,定义为 List[Nothing],根据 List 的定义 List[+A],所有 Nil 是所有 List[T] 的子类。

