感谢原文作者:不将就!
原文链接:https://www.cnblogs.com/byron0918/p/5770653.html
类加载器负责将.class文件加载到内存中,并为之生成对应的Class对象。其中class文件有可能存在磁盘上,也有可能存在网络上。
当JVM启动时,会形成由三个类加载器组成的初始类加载器层次结构:
类加载机制:全盘负责和父类委托机制
全盘负责:就是当一个classloader加载一个Class的时候,这个class所依赖的和医用的其他class对象通常也由这个classloader负责载入。
委托机制:先让父类加载器寻找,只有在父类加载器找不到的情况下才从自己的类路径中去寻找。
类加载还采用了cache机制,如果cache中保存了这个class就直接返回它,如果没有才从文件中读取和转换成class,并存入cache,这就是为什么修改了class,但是必须重新启动JVM才能生效,并且类只加载一次的原因。