Java万事万物皆对象

263 阅读1分钟

(1)、对象object

Java中,万事万物皆对象,包括类本身,也是对象,类是Java.lang.Class的实例对象, class对象存储在方法区,里面有类的元数据信息Meta information,比如说方法,类字段,静态字段,运行时常量池runtime const pool等。

(2)、loading Class to memory

所谓的加载一个类,就是把一个class的字节码, 映射到内存中表示,这个在内存中的class, 就是类对象;

(3)、类信息

至于什么时候会用到,但凡需要访问类信息的时候都会用到, 比如说在对象实例的方法(非静态方法)里面的局部变量表slot数组中的第一个槽slot里面,放的就是指向这个对象所属类的指针;

(4)、

hotspot虚拟机是用c++实现的,里面有一套模型用来表示Java的类和对象,这个模型叫kclass–oop模型, kclass对象代表的就是Java中的类,oopdesc对象代表Java中的对象;

(5)、总结:

class对象就是给你提供一个访问类信息的入口,比如说Java的反射机制里面的各种获取类字段、方法的手段。