类加载机制

系统在运行一个java文件时简单的过成描述

1.操作系统底层调用jvm文件创建虚拟机

2.虚拟机调用c++代码创建引导类加载器,

3.通过类加载器加载java文件获取类信息

4.调用类方法

启动时的流程图








什么是双亲委派.就是默认appclassload加载时会先判断一下自己有没有加载过.如果没有着用父属性extclassload加载,同理extclassload也会判断下自己有没有加载过,没有的话再用引导类加载器判断有没有加载过.都没有加载过的话会再如此反向加载,先用ext加载器去加载,然后再用app加载器.这样的好处不会重复加载,如下图


双亲委派


通过查看ClassLoader的源码会发现ExtClassLoader和AppClassLoader都是继承ClassLoader,

所以我们也可以自定义加载器,继承ClassLoader  重写findClass和LoadClass方法就可以.

你可能感兴趣的:(类加载机制)