Java的ClassLoader(类装载器)学习总结

1、类装载器的概念

类装载器就是寻找类的字节码文件并构造出类在JVM内部表示的对象组件。主要工作由ClassLoader及其子类负责。ClassLoader是一个非文件常重要的Java运行时系统组件。他负责在Java运行时查找和装入class字节码文件。

2、工作机制

(1)装载:查找和导入class文件。

(2)链接:执行校验,准备(为类的静态变量分配空间)和解析步骤(将符号引用解析为直接引用)。

(3)初始化:对类的静态变量、静态代码块执行初始化工作。

3、ClassLoader常用的一些方法:

(1)Class loadClass(String name)通过类的全限定类名装载类返回一个该类的Class对象。

(2)Class defineClass(String name, byte[] b, int off, int len)通过字节数组获得一个类的定义

(3)Class findSystemClass(String name)通过系统文件路径加载一个类

  (4)   Class findLoadedClass(String name)通过类的全限定类名确定类是否已经装载,没有装载则返回null

  (5)    ClassLoader getParent() 获取父装载器.

BootStrapClassLoader(采用c++编写)是ExtClassLoader的父类,ExtClassLoader又是ApplicationLoader的父类。

4、Class类 

Class对象是在类的装载过程中由ClassLoader创建的,它没有公共的构造的方法。每个类装载后都会产生一个对应的Class对象,通过这个Class对象我们能通过编程的方式获取类的许多信息如:

Class Name

Class Modifies (public, private, synchronized etc.)

Package Info

Superclass

Implemented Interfaces

Constructors

Methods

Fields

Annotations

你可能感兴趣的:(Java的ClassLoader(类装载器)学习总结)