package com.shujia.day21;
/*
如何获取一个字节码文件(编译后得到的.class后缀的文件)对应的Class对象
一个字节码文件,在内存中只会存在一个对应的Class类对象
JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;
对于任意一个对象,都能够调用它的任意一个方法和属性;
这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制。
要想解剖一个类,必须先要获取到该类的字节码文件对象。
而解剖使用的就是Class类中的方法.
所以先要获取到每一个字节码文件对应的Class类型的对象.
*/
public class ClassDemo1 {
public static void main(String[] args) throws Exception{
//方式1:对象已经存在的情况下获取
// Student s1 = new Student();
// Class<? extends Student> c12 = s1.getClass();
// Class<? extends Student> c22 = s1.getClass();
// System.out.println(c12==c22);
//方式2:直接通过类名的方式进行获取
// Class<Student> c1 = Student.class;
// Class<Student> c2 = Student.class;
// System.out.println(c1==c2);
// System.out.println(c12==c2);
//方式3:调用Class类中的静态方法获取字节码文件的Class对象
Class<?> c1 = Class.forName("com.shujia.day21.Student");
Class<?> c2 = Class.forName("com.shujia.day21.Student");
System.out.println(c1==c2);
}
}