zoukankan      html  css  js  c++  java
  • JVM classloader

    你必须知道的ClassLoader


    为什么必须知道:ClassLoader ClassLoader是类加载的重要类。


    分类:主要分为bootstrapClassLoader,ExtClassLoader,AppClassLoader。
    是基于C++ 实现,主要加载Javahome/lib,ExtClassLoader主要加载javaHome/lib/ext,AppClassLoader主要加载classpath下面的类。

    什么是Classloader :类的初始化装载的一个类,

    加载顺序,先让父加载器加载,如果找不到在用子加载器加载。如果父类想访问子类加载器需要Thread.cureentThread.getClassloader.获取子加载类。


    自定义ClassLoader,为了保证委托双亲委托的原则,需要覆盖findClass. 为什么要双亲委托呢。一般程序是使用AppClassLoader ,上面还有两个ClassLoader,所以叫双亲。

    常用的ClassLoader场景
    SPI和Tomcat
    SPI 使用ClassLoader的Thread.cureentThread.getClassloader 来在lib里面访问自定义标准类如mysql.driver。
    Tomcat 通过自定义类来实现类库复用,程序隔离等。

    参考文档

    https://blog.csdn.net/xyang81/article/details/7292380

    https://blog.csdn.net/briblue/article/details/54973413

    https://mp.weixin.qq.com/s/54ZrYCLD6rzk8T52s4wyOQ

  • 相关阅读:
    倒计时显示
    Global.asax实现屏蔽ip和图片防盗链
    同一账号不能同时登陆
    javascript中defer的作用
    javascript焦点图
    asp.net自定义分页
    GridVew linkbutton点击时获取点击行label的绑定值
    内存对齐
    深入.NET托管堆(Managed Heap)
    内存对齐1
  • 原文地址:https://www.cnblogs.com/javabeginer/p/9103951.html
Copyright © 2011-2022 走看看