在 Java 语境里,通常说“对象”,指的是:
运行时存在的一块堆内存实体,它的运行时类型是某个引用类型(reference type),并且可以用引用变量指向。
注意:“对象”的判定依据是类型系统 + 运行时实体
而“某个引用类型”的最上层就是 java.lang.Object。所以有一个非常硬的事实:
只要一个东西的运行时类型是 Object 的子类,那么它就是一个对象。
- 对象是运行时实体;
- 引用类型实例就是对象;
- 所有引用类型都继承自 Object(除非是接口/基本类型等),因此它们的实例都是对象。