之前在JVM架构一文中描述了类加载器的基本功能,本文带领大家详细的了解下类加载器。
1类从编译到执行的过程
假设有个类名为A,编译器将A.java源文件编译成字节码,然后通过类加载器(ClassLoader)将该字节码文件转换成JVM中的Class(A)对象(一个类只有唯一的Class(A)对象),JVM利用该Class(A)对象通过new或者反射的方式实例化为A对象。
2什么是类加载器?
类加载器主要工作在Class装载的加载阶段,主要作用是从系统外部获得Class二进制数据流。他是java的核心组件,所有的Class都是由类加载器进行加载。将Class文件里的二进制流数据装载进系统,然后交给java虚拟机进行连接初始化等操作。
3类加载器的种类
(1)BootStrapClassLoader(启动类加载器):c++编写,加载核心库。
(2)ExtClassLoader(扩展类加载器):java编写,加载扩展库。
(3)AppClassLoader(应用程序类加载器):java编写,加载所在目录程序。
(4)自定义ClassLoader:java编写,定制化加载。