首页 > 代码库 > JVM启动过程

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启动过程