类加载器:
用来加载通过javac编译成的.class文件。jvm虚拟机当中的类加载器负责加载这些编译好的类字节文件,先经过一系列的处理,然后缓存到我们的JVM虚拟机中。供程序随时使用。
反射实现的基础---》class类
class 声明类型
Class 描述java类的组成成分(名字、属性、路径、父类、构造方法、普通方法)
Class 实例化的方式? 加载到虚拟的这个模板字节 创造一个实际的对象出来
大写的Class是描述我们的java类String s = "获取Class对象"; //1实例化对象.getClass() Class clazz1 = s.getClass(); //2 类.class Class clazz2 = String.class; //3各种框架常用 Class.forName(); Class clazz3 =Class.forName("java.lang.String"); System.out.println(clazz1 == clazz2);//true System.out.println(clazz1 == clazz3);//true System.out.println(Integer.class == int.class);//false System.out.println(Integer.TYPE == int.class);//true //八大简单基本类型 void 是我们的九大预定义 Class clazz4 = int.class; System.out.println(clazz3.isPrimitive()); //false String 也是一个封装类 System.out.println(clazz4.isPrimitive()); //true int是预定义的 //获取String传入StringBuffer构造方法 Constructor constructor = clazz3.getConstructor(StringBuffer.class); //使用构造方法 实例化一个String对象 String ss = (String)constructor.newInstance(new StringBuffer("aaaa")); System.out.println(ss);
反射
反射就是将一个类的组成部分映射成相应的java对象 字节模板 他的每部分的字节模板