zoukankan      html  css  js  c++  java
  • ClassLoader

    类加载器就是用来加载类的对象,而ClassLoader是一个抽象类,只要给出类的二进制名称,类加载器就能确定或生成构建这个类的定义;通常是把二进制名称转成文件系统的文件名,再读入这个类文件。

    每个类对象都拥有getClassLoader 这个方法;

    数组创建的类对象不是由类加载器加载的,而是运行时按需加载,对每一个数组元素调用类加载器,而元素类型为原始类型时就没有类加载器;

    可以通过继承ClassLoader来扩展一些在JVM动态加载过程中的处理方式

    类加载器常用于安全管理,指明哪些是安全域

    ClassLoader使用一种委托模式来查找类和资源,每个ClassLoader的实例都有自己的父类加载器,当自己要查找类或资源前,ClassLoader先委托父类进行查找 。

    虚拟机有一个内置的类加载器,bootstrap class loader,它没有父类加载器,却可以当其它类加载器的父类加载器。

    类加载器支持并行加载,即所谓的并发模式,这个需要类加载在初始化阶段调用registerAsParallelCapable 自己注册;ClassLoader是默认并行的,而它的子类需要主动注册。

    当执行环境中的代理模式层次不清时,类加载需要并行加载,因为类加载进程方法会持有加载锁,这可能导致死锁。

    通常JVM加载都使用平台依赖的方式从本地加载类,例如UNIX系统,虚拟机是从CLASSPATH环境变量定义的路径开始加载类;

    然后还有些类是从网络生成的,

    网络类加载器的子类必须有以下2个方法,

    class NetworkClassLoader extends ClassLoader {

      String host;

      int port;

      public Class findClass(String name) {

        byte[] b = loadClassData(name);

        return defineClass(name, b, 0, b.length);

      }

      private byte[] loadClassData(String name) {

        // load the class data from the connection

      }

  • 相关阅读:
    初步认识虚函数(三)
    初步认识虚函数(二)
    C++遍历目录+_finddata_t结构体用法
    初步认识虚函数(一)
    gSOAP 使用WebServer心得
    如何优雅的写UI——(6)内存泄漏
    如何优雅的写UI——(5)选项卡功能实现
    如何优雅的写UI——(4)选项卡美化
    变色字体
    如何优雅的写UI——(3)添加MFC选项卡
  • 原文地址:https://www.cnblogs.com/iamgoodman/p/10164025.html
Copyright © 2011-2022 走看看