在虚拟机中,需要一种机制来识别一个对象的具体类型Java的反射依赖这种机制;Python源代码里缺少类型信息,更加完全依赖于对象类型识别机制;即使C++做为静态语言的代表,也依赖虚表指针进行dynamic_cast时的类型检查。
Klass机制:
在虚拟机中,每种类型都有自己对应的Klass,例如IntegerKlass, DoubleKlass,在虚拟机中往往是一个单例对象。
每一个对象,例如Java中的整型对象(new Integer(1)),都被称为普通对象,又因为虚拟机中的对象往往使用引用的方式,对应到虚拟机的实现中就是指针,所以又称为普通对象指针(Ordinay Object Pointer)。
每一个普通对象都有一个指向Klass的指针用以指示自己的类型。