zoukankan      html  css  js  c++  java
  • Java类加载

    类加载器

    概念

    Java类加载器负责将编译好的Java class文件加载到JVM中的运行时数据区域,供执行引擎调用。

    分类

    • 启动类加载器:BootClassLoader
    • 扩展类加载器:ExtClassLoader -> PlatFromClassLoader(JDK1.9后)
    • 应用类加载器:AppClassLoader

    启动类加载

    Java虚拟机启动后创建的第一个类加载器,由C++语言实现,所以再Java代码中查看其信息时,均为null。

    加载路径:$JAVA_HOME/jdk1.8/jre/lib

    扩展类加载器

    由启动类加载器加载,并将扩展类加载器中parent的值置为null,表示指向启动类加载器,同时继承URLClassLoader。

    加载路径:$JAVA_HOME/jdk1.8/jre/ext

    系统类加载器

    由启动类加载器加载,并将系统类加载器中的parent的值置为扩展类加载器,同时继承URLClassLoader

    加载路径:classpath

    双亲委派机制

    JVM加载class类文件到虚拟机时,默认首先采用系统类加载器去加载用到的class类,采用的是双亲委托加载机制。

    所谓双亲委托,顾名思义,就是当前类加载器(以系统类加载器为例)在加载一个类时,委托给其双亲(注意这里的双亲指的是类加载器中parent属性指向的类加载器)先进行加载。

    双亲类加载器在加载时同样委托给自己的双亲,如此反复,直到某个类加载器没有双亲为止(通常情况下指双亲为null,也即为当前的双亲为扩展类加载器,其parent为启动类加载器),然后开始在依次在各自的类路径下寻找、加载class类

    其他

    class文件生成jar文件命令

    jar -cvf  xxx.jar  xxx.class  xxx.class ...
    
  • 相关阅读:
    面试2
    面试总结
    谈谈扫码支付的实现流程
    从产品分类、模块功能和业务流程,了解支付产品服务的设计
    【提现】的业务流程
    APP测试点归纳
    安全测试的思路
    一 大型网站架构演化(大型网站技术架构原理)
    Tomcat服务器原理详解
    Tomcat目录结构详解
  • 原文地址:https://www.cnblogs.com/main404/p/14466519.html
Copyright © 2011-2022 走看看