前言
本篇博客将写一点关于JVM的东西,涉及JVM运行时数据区、类加载的过程、类加载器、ClassLoader、双亲委派机制、自定义类加载器等,这些都是博主自己的一点理解,如果有误,欢迎大家评论拍砖~
关于JVM运行时数据区
关于类加载
加载:在方法区形成类的运行时数据结构;在堆里面形成该类的Class对象,作为访问方法区的入口。
链接:class文件是否存在问题;一些符号引号替换成直接引用。
初始化:初始化一个类,先初始化它的父类。虚拟机会保证一个类的初始化在多线程环境中被正确加锁和同步。
关于类加载器
类加载器的层次结构
关于java.lang.ClassLoader
ClassLoader的组合模式
demo:
ClassLoader重要API
类加载器的代理模式:双亲委派机制
双亲委派机制不是唯一的选择
写一个自定义类加载器
MyClassLoader:
重写findClass:
Test:
好了,关于JVM运行和类加载的过程就写到这里,^_^
2017.10.29 zhangfengzhe