JVM 加载Class文件的原理及其机制
程序员文章站
2022-03-29 22:53:43
...
最近面试了阿里。发现其面试java这块对底层的了解很迫切。因此我也复习下。毕竟有段时间没有去碰java了。现在先从最基础最底层的一个问题开始:
JVM 加载Class的原理。上网上搜可以搜到很多。但是我还是按照自己的认识来复习下。
1.java文件都是需要编译为class文件。因此java中的所有类都必须被JVM加载才能运行。那么jVM是如何来加载呢?
1.1 jvm加载的类大致可以分为三种: 系统类,扩展类,自定义类
1.2 JVM对类加载的方式有两种:1.隐式加载 ,2 显式加载
a. 隐式加载:程序在运行过程中当碰到是由new 方式产生的对象时,隐式调用类加载器对应的类到JVM中。
b. 显式加载:通过Class.forName()等方法来显式加载这些需要的类。
1.3 类加载是一个动态的加载过程。它并不是一次性将所有的类全部加载在运行。它先将一些必须的基础类一次性加载到JVM中。其他的类要等到用到的时候在加载进入JVM。
1.4 java类三层次加载器:最高层(Bootstrap Loader) 负责加载系统类 第二层(ExtClassLoader)负责加载扩展类。第三层(AppClassLoader)负责加载应用类。
1.5 三层次类加载器之间的协调加载机制靠(委托模型)这个委托加载就是当有需要类进行加载。那么首先会让其父层进行加载,如果父层没有找到或没有加载到,那么才会到自己来进行加载。
JVM 加载Class的原理。上网上搜可以搜到很多。但是我还是按照自己的认识来复习下。
1.java文件都是需要编译为class文件。因此java中的所有类都必须被JVM加载才能运行。那么jVM是如何来加载呢?
1.1 jvm加载的类大致可以分为三种: 系统类,扩展类,自定义类
1.2 JVM对类加载的方式有两种:1.隐式加载 ,2 显式加载
a. 隐式加载:程序在运行过程中当碰到是由new 方式产生的对象时,隐式调用类加载器对应的类到JVM中。
b. 显式加载:通过Class.forName()等方法来显式加载这些需要的类。
1.3 类加载是一个动态的加载过程。它并不是一次性将所有的类全部加载在运行。它先将一些必须的基础类一次性加载到JVM中。其他的类要等到用到的时候在加载进入JVM。
1.4 java类三层次加载器:最高层(Bootstrap Loader) 负责加载系统类 第二层(ExtClassLoader)负责加载扩展类。第三层(AppClassLoader)负责加载应用类。
1.5 三层次类加载器之间的协调加载机制靠(委托模型)这个委托加载就是当有需要类进行加载。那么首先会让其父层进行加载,如果父层没有找到或没有加载到,那么才会到自己来进行加载。
上一篇: 务虚久了重归务实