反射_获取字节码Class对象的三种方式
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210406172155612.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L20wXzQ2NTAxMDUz,size_16,color_FFFFFF,t_70#pic_center)
- Class.forName(“全类名”):将字节码文件加载进内存, 返回Class对象
多用于配置文件, 将类名定义在配置文件中。读取文件,加载类; - 类名.class:通过类名的属性class获取。
多用于参数的传递 - 对象.getClass():getClass()方法在Object类中定义着。
多用于对象的获取字节码的方式
public static void main(String[] args) throws Exception {
Class cls1 = Class.forName("com.itheima.domain.Person");
System.out.println(cls1);
Class cls2 = Person.class;
System.out.println(cls2);
Person p = new Person();
Class cls3 = p.getClass();
System.out.println(cls3);
System.out.println(cls1 == cls2);
System.out.println(cls1 == cls3);
Class c = Student.class;
System.out.println(c == cls1);
}