众所周知,.java文件需要经过编译生成.class文件才能被JVM执行。

其中,JVM是如何加载.class文件,又做了些什么呢?

.class文件通过 加载-》验证-》准备-》解析 等过程,加载到方法区中,等待代码的调用,下面讲讲每个步骤都干了些什么吧

 

一、加载

  将.class文件加载到jvm中。

那么何时加载呢?当类被调用的时候!例如:new A();的时候A被加载到内存中。这里需要注意,并不是每次使用的时候都会加载,只是第一次使用的时候加载进来。

 

二、验证

  验证.class文件的合规性。

防止.class文件被篡改,导致文件无法执行

 

三、准备

  为类分配内存,给静态变量默认初始化赋值

 

四、解析

  将符号引用变为直接引用

将引用变成指针指向。

 

上述类加载过程在类加载器完成,细节其实很复杂,我们只需要了解核心即可。而类加载器又涉及到双亲委派。自行学习

  

相关文章:

  • 2021-05-13
  • 2021-06-04
  • 2021-12-19
  • 2022-12-23
  • 2021-06-30
  • 2022-02-14
  • 2022-12-23
  • 2021-06-14
猜你喜欢
  • 2021-12-18
  • 2021-06-07
  • 2021-05-02
  • 2021-08-15
  • 2021-12-29
  • 2021-10-04
  • 2021-07-11
相关资源
相似解决方案