1. 类加载器的含义。
Java虚拟机在用到一个类的时候,首先要把这个类加载进虚拟机内存。这个功能就是由类加载器完成的。最常见的类加载器就是将本地的.class文件(UTF-8编码)加载为虚拟机的Unicode编码的字节码。Java语言提供了自定义类加载器的功能,从而方便用户实现各种各样的类加载方式,例如从数据库加载,从配置文件加载,从加密文件加载等等。
2. Class类用于描述java中一个类的相关信息。可以通过以下方式获取一个类的Class类:
1.1 类名.Class
1.2 对象.getClass()
1.3 Class.forName(“类名”):每个内存中的java对象都有一个 Class对象用来表述这个对象。常见的顺序是在实例化一个类的对象时,加载对象并生成它的Class对象。Class类的静态方法forName()方法用于先生成某个类对应的Class类对象,这时候内存中可以不存在实例化对象。然后使用Class类的newInstance()方法来调用原类的无参构造函数来实例化这个类的一个对象。这种模式常用于设计模式中的工厂模式,通过配置文件中的类名字符串动态的加载一个类。注:使用Class.forName方法时,系统会自动的执行类中的静态方法。
1.4 Class类的getClassLoader()方法用于返回这个类的类加载器。类加载器的基类是java.lang.ClassLoader类。它的loadClass()方法用于加载类。