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所指定的目录中记载类,是用户自定义加载器的默认父类。

  • 相关阅读:
    java后台保存JSON
    查询树节点及其所有上级节点sql语句
    查询树节点及其所有下级节点sql语句
    Hibernate查询机制使用原生sql语法查询
    SSH框架通过poi导出excel表格
    java通过poi导入excel数据
    各类型日期date的相互转化
    推荐一下我喜欢的软件
    青岛市赛总结——远征石油大学
    My learn of git
  • 原文地址:https://www.cnblogs.com/xiaoxli/p/9392608.html
Copyright © 2011-2022 走看看