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

    什么是类装载器ClassLoader

    ClassLoader是一个抽象类

    ClassLoader的实例将读入Java字节码将类装载到JVM中

    ClassLoader可以定制,满足不同的字节码流获取方式

    ClassLoader负责类装载过程中的加载阶段

    ClassLoader的重要方法

    public Class<?> loadClass(String name) throws ClassNotFoundException

    载入并返回一个Class protected final Class<?> defineClass(byte[] b, int off, int len)

    定义一个类,不公开调用 protected Class<?> findClass(String name) throws ClassNotFoundException

    loadClass回调该方法,自定义ClassLoader的推荐做法

    protected final Class<?> findLoadedClass(String name)

    寻找已经加载的类

    BootStrap ClassLoader (启动ClassLoader)

    Extension ClassLoader (扩展ClassLoader)

    App ClassLoader (应用ClassLoader/系统ClassLoader)

    Custom ClassLoader(自定义ClassLoader)

    查找顺序 自底向上 ,加载顺序是自上往下。

    说白了 就是 看父母有 优先加载顺序。

    双亲模式 貌似合理 有新的问题,父类怎么加载子类。是刚性需求。比如说 mysq ljdbc驱动包。

    Thread. setContextClassLoader()  是传送之门 通过setContextClassLoader加载的 那个加载器都可以使用啊。

    Thread. setContextClassLoader()  

    上下文加载器 是一个角色

    用以解决顶层ClassLoader无法访问底层ClassLoader的类的问题

    基本思想是,在

    顶层ClassLoader中,

    传入底层ClassLoader的实例

    tomcat 加载器  好文自己看

    http://www.cnblogs.com/xing901022/p/4574961.html

  • 相关阅读:
    LOJ-10096(强连通+bfs)
    LOJ-10095(缩点的特殊使用)
    LOJ-10094(强连通分量)
    LOJ-10092(最大半连通子图)
    【BZOJ3489】A simple rmq problem(KD-Tree)
    UVA10384 推门游戏 The Wall Pushers(IDA*)
    [SCOI2005]骑士精神(IDA*)
    浅谈A*算法
    【模板】K-D Tree
    【XSY1953】【BZOJ4012】【HNOI2015】开店(动态点分治)
  • 原文地址:https://www.cnblogs.com/itxuexiwang/p/6255700.html
Copyright © 2011-2022 走看看