JVM启动过程

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JVM启动过程相关的知识,希望对你有一定的参考价值。

JVM启动过程包括:加载、连接、初始化

1.加载:就是将class文件加载到内存。详细的说是,将class文件加载到运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对象,用来封装类在方法区类的数据结构

  有两种类型的类加载器:

     1.1JVM自带提供的三类加载器:根类加载器Bootstrap Classloader(C++写的, 程序员无法在JAVA代码中获得该类)

                                                 扩展加载器Extension Classloader,使用Java代码实现

                                                 系统加载器System ClassLoader,也叫应用加载器 Application Classloader,使用Java代码实现

       1.2用户自定义的类加载器,都是java.lang.ClassLoader的子类

      

2.连接分为三步   2.1.验证:检查被加载的类的正确性;

         2.2.初始化:接着将静态变量初始化为默认值,比如一个类中有一句private static int num=1; 实际上在这一步的时候,只是将num初始化为默认值0

                           2.3.解析:把类中的符号引用转换为直接引用

3. 初始化。"任何JVM实现,必须在每个类或接口被JAVA程序"首次主动使用时"才初始化它们"

 

以上是关于JVM启动过程的主要内容,如果未能解决你的问题,请参考以下文章

JVM启动过程

JVM启动过程 类加载器

JVM上的Reactive套件Vert.x启动过程源码解析

如何设置jvm启动参数

怎么给JVM加启动参数?

(二十七)JVM类加载器机制与类加载过程