zoukankan      html  css  js  c++  java
  • 类加载机制:类加载器

    类加载器(ClassLoader):
    当编译器编译java源文件之后,会产生一个相应的字节码(.class文件)。当程序开始运行之前,必须将这个文件载入内存中,生成
    一个与之匹配达到class对象。这个过程我们称之为类加载,要弄清楚加载的机制,首先我们必须要清楚了解类加载的相关知识,它石完成整个类加载的重要工具。
     
     简单的说,当一个class文件载入内存之后,并创建成一个Class对象的过程,就称之为类加载。
    (补充说明:任何一个class文件当类加载到jvm之后都会为其创建一个唯一的Class对象(元对象),在后续的实例化过程中,都是通过这个Class对象来创建类的实例。所以Class对象是反射的基石。)
     
    在java中,类加载器可以分为三类:
    1.启动类加载器(BoorStrap ClassLoader)
       启动类加载器石负责加载JDK核心包下的类文件,对应的目录就是
       “JDK安装目录/jre/lib”。其中最重要的一个jar文件就是rt.jar
           注意:这个加载器我们石没办法取操作的,因为它本身使用C++语言实现。
    2.扩展类加载器(Extension ClassLoader)
       这个类加载器,是由启动类加载器来加载的。扩展类加载器是用java语言实现,
       它主要负责加载JDK里面的扩展的jar文件。对应的目录是"JDK安装目录/jre/lib/ext"
    3.应用程序类加载器(Application ClassLoader)
       这个类加载器也是使用java语言实现,它同样由启动类加载器所加载。它主要负责加载我    们开发人员所编写的java类,通常对应的目录就是环境变量下的ClassPath路径
     
    注:不同的类加载器创建出来的类是不相同的
     
    JVM的类加载是基于双亲委托模型。也就是当我们编写任意一个类的时候,本身并不是由应用程序类加载器立即加载,而是先委托给父类加载器去加载,当父加载器在自己所加载的范围内找不到对应的class文件时,最后菜会将加载权交回给子类加载器去加载。这样做的目的是为了保证jvm的安全加载机制
     
     
     
     
  • 相关阅读:
    3294 [SCOI2016]背单词
    P4551 最长异或路径
    BZOJ 4260: Codechef REBXOR
    P2322 [HNOI2006]最短母串问题
    P2444 [POI2000]病毒
    P3121 [USACO15FEB]审查(黄金)Censoring (Gold)
    BZOJ 3942: [Usaco2015 Feb]Censoring
    EZOJ #77
    EZOJ #73
    547D Mike and Fish
  • 原文地址:https://www.cnblogs.com/zachary7/p/7975533.html
Copyright © 2011-2022 走看看