zoukankan      html  css  js  c++  java
  • Java虚拟机加载.class文件的原理

      Java中的类装载是由JVM来完成的,类装载器是一个重要的Java运行时组件,主要职责是在运行时查找和装载所需的类文件。

      由于Java的跨平台性,经过编译的Java源程序并不是可执行的程序,它是一个或多个类文件,当运行时需要某个类时,JVM会先确认该类是否已经被加载、连接和初始化。类的加载就是通过类加载器将.class中的数据读入到内存中,通常是创建一个字节类型的数组来存放.class文件,生成与加载类所对应的Class对象;已经被加载的类还不可用,需要对其进行连接,连接阶段主要包括验证、准备(为静态变量分配内存及初始化)和解析(将符号引用替换成直接引用);最后进行初始化,包括(1)如果该类有直接父类,且父类还未被初始化,先初始化父类构造器;(2)如果类中包含初始化语句,依次执行初始化语句。

      类加载器包括:1、根加载器(Bootstrap):一般用本地代码实现,负责加载JVM基础核心类库

             2、扩展加载器(Extension):从java.ext.dirs系统属性所指定的目录中加载类库,它的父加载器是Bootstrap

             3、系统加载器(System):又叫应用类加载器,其父类是Extension。它是应用最广泛的类加载器,它从环境变量    classpath或系统属性java.class.path所指定的目录中记载类,是用户自定义加载器的默认父类。

  • 相关阅读:
    mysql误删表,无备份
    感情启示录
    奸的好人之财色战场
    Word神器使用
    Maven工程的Web调试
    IntelIoT技术笔记Java/Eclipse
    IntelIoT技术笔记Maven
    Linux脚本(二)
    MINA
    360是神器
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9392608.html
Copyright © 2011-2022 走看看