类加载机制分为双亲委派和类加载方式
一、类加载器方式
类加载器名称 | 类加载器目录 |
---|---|
1.启动类加载器 | 在%JAVA_HOME%/jre目录下 |
2.拓展类加载器 | 在%JAVA_HOME%/jre/lib/ext目录下 |
3.应用类加载器 | classpath指定的目录下%JAVA_HOME%/lib%JAVA_HOME%\lib\tools.jar |
4.自定义了类加载器 | 我们自己定义类加载器 |
二、类加载器方式
如果我们阅读源码,可以看到里面是有一个findclass方法的,去不停的检查上一级是否存在过相同包名、相同类名的文件
三、类加载过程
加载–>链接(验证–>准备–>解析)–>初始化–>使用–>卸载
四、类加载的方式
1、new Object(),直接在虚拟机jvm中新建一个对象
2、class.forName,会对类进行加载、初始化
3、class.loadClass,会对类进行加载,但不会初始化