Rumah  >  Artikel  >  Java  >  详解JAVA开发之classLoader类加载机制

详解JAVA开发之classLoader类加载机制

无忌哥哥
无忌哥哥asal
2018-07-18 11:25:151833semak imbas

jvm有三种类加载器,一种用户自定义加载器,从上到下分别是:

bootstrap classLoader 该类加载器在java虚拟机启动时将jdk核心类库加载进内存

extension classLoader 扩展类加载器,该类加载器是加载jre的一些jar的类库

system classLoader 系统类加载器,该类加载器是加载classpath下面的指定类库到内存

custom classLoader 用户自定义类加载器,该类加载器由程序员自己负责在程序运行期间,通过java.lang.classLoader的子类来动态加载class文件

加载机制:

java类加载机制叫双亲委托机制:就是当有请求向加载器请求类时,首先会自底向上查询该类是否被加载到内存,如果被加载则直接返回该类,如果没有,那么先委托父类加载器加载该类,如果当前加载器还有父类,那再向上一级委托,直到顶层,只有当父类无法加载该类时,才会返回下一级直到自己加载,如果自己也无法加载,则返回类找不到异常(ClassNotFoundException)。例如:当要求用用户自定义加载器加载java.lang.String类时,实际上用的是bootstrap classLoader加载的,因为java.lang.String是jdk的核心库类,在用户自定义加载时,会先委托父类加载器。

Atas ialah kandungan terperinci 详解JAVA开发之classLoader类加载机制. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn