定义作用:lang下的Class 类是Class类的类
表示正在运行的Java应用程序中的类和接口,用于记录一个特定的类在运行时的类型信息。一个类的定义包含成员变量,成员方法,还有这个类实现的接口,以及这个类的父类。
自动构建:Class类没有公共的构造方法,Class对象是在编译后加载类时由 Java 虚拟机以及通过调用类加载器中的 defineClass 方法自动构造。
常用方法:返回类名称、类装载器、AnnotatedType
对象、对象注释、Constructor
对象以及所有与类相关的东西。
1. getName()
返回对象的类名
返回String类型
2.static forName(String ClassName)
使用ClassName指定的、与类或接口相联系的class对象;调用此方法相当于:
Class.forName(className, true, currentLoader)
返回Class类型
3.static forName(String name,boolean initialize,ClassLoader loader)
使用给定的类加载器返回与给定字符串名称的类或接口相关联的 类
对象。可用于安装驱动程序。
返回Class类型
4.newInstance()
根据某个Class对象产生其对应类的实例对象。需要强调的是,它调用的是此类的默认构造方法。
返回T对象
Class的一些使用技巧:
1、forName和newInstance结合起来使用,可以根据存储在字符串中的类名创建对象。例如
Object obj = Class.forName(s).newInstance();
2、虚拟机为每种类型管理一个独一无二的Class对象。因此可以使用==操作符来比较类对象。例如:
if(e.getClass() == Employee.class)...
3.反射机制
补充:这里需要解释一下:请记住一句话,java中,一切皆对象。也就是说,基本类型int float 等也会在jvm的内存池像其他类型一样中生成一个Class对象。而数组等组合型数据类型也是会生成一个Class对象的,而且更令人惊讶的是,java中数组的本来面目其实就是某个类,惊讶中的惊讶是,含有相同元素的相同维数的数组还会共同享用同一个Class对象
本文部分摘自
https://blog.csdn.net/yxwb1253587469/article/details/62045551
https://blog.csdn.net/u014082714/article/details/50004843
java.lang.ClassLoader类
类加载器,类的加载过程等参考文章如下:
1.ClassLoader详解
https://blog.csdn.net/poorcoder_/article/details/80258725
2.深入理解ClassLoader工作机制(jdk1.8)
https://blog.csdn.net/u014634338/article/details/81434327
3.一看你就懂,超详细java中的ClassLoader详解
https://blog.csdn.net/briblue/article/details/54973413