类 Object 是类层次结构的根类。每个类都把Object 作为超类。所有对象(包括数组)都实现Object 的方法。—JDK
常用方法探究
参看 JDK 源代码,可以看见类 Object 一共有12个方法。其中有7个本地方法。这里简要说明一下何为本地方法:被native关键字修饰的即为本地方法。本地方法只有方法声明,没有方法实现,因为这些方法一般由c/c++编写,在程序运行时,由虚拟机去调用。Object 的第一个方法registerNatives()便是用以注册本地方法,该方法在静态代码块内调用。
static {
registerNatives();
}
要详细理解registerNatives(),可以参阅Object类中的registerNatives方法的作用深入介绍,本文不对其探究。
下面是Object的其他方法:
方法一 getClass()
public final native Class<?> getClass();
该方法返回对象的运行时类,而实际的返回值类型为Class<? extends |X|>,即Class对象,请看以下代码理解:
- 例一
首先定义一个类:
public class FirstObject {
/*什么都没有 🤭*/
}
再写一个测试类,定义了FirstObject的对象,并调用getClass()方法。
public class Test {
public static void main(String[] args) {
FirstObject firstObject = new FirstObject();
Class<? extends FirstObject> aClass = firstObject.getClass();
System.out.println(aClass);
}
}
可见,该方法的返回值是Class 类的对象。Class 类是一个泛型类,且是不可继承的。 然后打印该返回值,输出结果为:
class studyclass.FirstObject 。可见当前对象的运行时类为FirstObject。
- 例二
再写一个类: