反射与类加载器

反射:

所谓的反射就是指,在java程序运行时,获得某些对象的实际结构与类型的过程。


创建对象的方式:

  • 用new调用构造方法创建对象
  • 用newInstance()按照类型创建对象
  • 用Class.formName()根据类名创建对象(类型必须在jar包中,不然创建不了)


类加载器:

ClassLoader:在JVM启动的过程中,把类模板加载到内存中的工具。就是将一个存在与系统文件中的.class文件,加载到当前JVM的内存中,变成java能识别的Class类型。

  • 启动项加载器:由C语言完成的,当JVM第一次启动的时候,加载本地方法栈中的.so支持包
  • 扩展项加载器:加载程序上面自己import导入的jar包,
  • 应用加载器(ApplicatioinClassLoader):加载自己写的类
  • 用户定义加载器:自己写的类加载器,可以加载任意来源的.class。

反射与类加载器