JVM-002、类加载的过程

2021-06-22  本文已影响0人  Docker_Compose

类编译-初始化

其他对象-调用->class对象-访问->内存(class文件的二进制)




类加载的过程

类加载的过程

图示:
类加载的过程.jpg

类加载过程详解

 类加载有三个阶段,loading、linking和initializing。其中,linking又分为三个小阶段,verification、preparation和resolution。

 类加载的每一个阶段的作业都是不同的:

  1. loading:将class文件加载至内存。
  2. linking
  1. initializing:将静态成员变量赋初始值。

load与new的区别
概述
过程 区别
load 默认值-初始值
new 申请内存 - 默认值 - 初始值
详解

 load的过程:将静态成员变量从赋默认值到赋初始值的。
 new的过程:先申请内存,申请完内存后,将成员变量赋默认值,然后再将成员变量赋初始值。



类加载器

类加载器.png



加载的顺序

 cache:Custom ClassLoader --> App --> Extension --> Bootstrap
 Bootstrap --> Extension --> App --> Cistom ClassLoader



双亲委派机制

 为什么会有双亲委派机制?主要是安全问题,次要是避免重复加载。

上一篇 下一篇

猜你喜欢

热点阅读