当前位置: 首页 > news >正文

青岛外贸网站建站公司东莞市专业的网页设计制作报价

青岛外贸网站建站公司,东莞市专业的网页设计制作报价,wordpress基础优化,南京环力建设有限公司网站1、ClassLoader与现有类加载器的关系 ClassLoader与现有类加载器的关系#xff1a; ClassLoader是一个抽象类。如果我们给定了一个类的二进制名称#xff0c;类加载器应尝试去定位或生成构成定义类的数据。一种典型的策略是将给定的二进制名称转换为文件名#xff0c;然后去…1、ClassLoader与现有类加载器的关系 ClassLoader与现有类加载器的关系 ClassLoader是一个抽象类。如果我们给定了一个类的二进制名称类加载器应尝试去定位或生成构成定义类的数据。一种典型的策略是将给定的二进制名称转换为文件名然后去文件系统中读取这个文件名所对应的class文件。 2、ClassLoader的主要方法 抽象类ClassLoader的主要方法(内部没有抽象方法) public final ClassLoader getParent() //返回该类加载器的超类加载器public Class? loadClass(String name) throws ClassNotFoundException 加载名称为name的类返回结果为java.lang.Class类的实例。如果找不到类则返回 ClassNotFoundException 异常。该方法中的逻辑就是双亲委派模式的实现。 protected Class? findClass(String name) throws ClassNotFoundException // 查找二进制名称为name的类返回结果为java.lang.Class类的实例。这是一个受保护的方法JVM鼓励我们重写此方法需要自定义加载器遵循双亲委托机制该方法会在检查完父类加载器之后被loadClass()方法调用。在JDK1.2之前在自定义类加载时总会去继承ClassLoader类并重写loadClass方法从而实现自定义的类加载类。但是在JDK1.2之后已不再建议用户去覆盖loadClass()方法而是建议把自定义的类加载逻辑写在findClass()方法中从前面的分析可知findClass()方法是在loadClass()方法中被调用的当loadClass()方法中父加载器加载失败后则会调用自己的findClass()方法来完成类加载这样就可以保证自定义的类加载器也符合双亲委托模式。 需要注意的是ClassLoader类中并没有实现findClass()方法的具体代码逻辑取而代之的是抛出ClassNotFoundException异常同时应该知道的是findClass方法通常是和defineClass方法一起使用的。一般情况下在自定义类加载器时会直接覆盖ClassLoader的findClass()方法并编写加载规则取得要加载类的字节码后转换成流然后调用defineClass()方法生成类的Class对象。 protected final Class? defineClass(String name, byte[] b, int off, int len) //根据给定的字节数组b转换为Class的实例off和len参数表示实际Class信息在byte数组中的位置和长度其中byte数组b是ClassLoader从外部获取的。这是受保护的方法只有在自定义ClassLoader子类中可以使用。defineClass()方法是用来将byte字节流解析成JVM能够识别的Class对象(ClassLoader中已实现该方法逻辑)通过这个方法不仅能够通过class文件实例化class对象也可以通过其他方式实例化class对象如通过网络接收一个类的字节码然后转换为byte字节流创建对应的Class对象。 defineClass()方法通常与findClass()方法一起使用一般情况下在自定义类加载器时会直接覆盖ClassLoader的findClass()方法并编写加载规则取得要加载类的字节码后转换成流然后调用defineClass()方法生成类的Class对象 例如 protected Class? findClass(String name) throws ClassNotFoundException {// 获取类的字节数组byte[] classData getClassData(name);if (classData null) {throw new ClassNotFoundException();} else {//使用defineClass生成class对象return defineClass(name, classData, 0, classData.length);} }protected final void resolveClass(Class? c) // 链接指定的一个Java类。使用该方法可以使用类的Class对象创建完成的同时也被解析。前面我们说链接阶段主要是对字节码进行验证为类变量分配内存并设置初始值同时将字节码文件中的符号引用转换为直接引用。protected final Class? findLoadedClass(String name) //查找名称为name的已经被加载过的类返回结果为java.lang.Class类的实例。这个方法是final方法无法被修改。private final ClassLoader parent; //它也是一个ClassLoader的实例这个字段所表示的ClassLoader也称为这个ClassLoader的双亲。在类加载的过程中,ClassLoader可能会将某些请求交予自己的双亲处理。loadClass()的剖析 ClassLoader.getSystemClassLoader().loadClass(com.atguig.java.User); //测试代码涉及到对如下方法的调用 protected Class? loadClass(String name, boolean resolve) //resolve:true-加载class的同时进行解析操作。throws ClassNotFoundException{synchronized (getClassLoadingLock(name)) { //同步操作保证只能加载一次。//首先在缓存中判断是否已经加载同名的类。Class? c findLoadedClass(name);if (c null) {long t0 System.nanoTime();try {//获取当前类加载器的父类加载器。if (parent ! null) {//如果存在父类加载器则调用父类加载器进行类的加载c parent.loadClass(name, false);} else { //parent为null:父类加载器是引导类加载器c findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {// ClassNotFoundException thrown if class not found// from the non-null parent class loader}if (c null) { //当前类的加载器的父类加载器未加载此类 or 当前类的加载器未加载此类// 调用当前ClassLoader的findClass()long t1 System.nanoTime();c findClass(name);// this is the defining class loader; record the statssun.misc.PerfCounter.getParentDelegationTime().addTime(t1 - t0);sun.misc.PerfCounter.getFindClassTime().addElapsedTimeFrom(t1);sun.misc.PerfCounter.getFindClasses().increment();}}if (resolve) {//是否进行解析操作resolveClass(c);}return c;} }
http://www.zqtcl.cn/news/374118/

相关文章:

  • 百度收录自适应网站滨海做网站哪家公司好
  • 东莞网站排名优化公司福田在线官网
  • 清湖网站建设天猫开店流程及费用2023
  • 邵阳建设网站公司网站建设构架
  • 怎样做网站卖网站网络营销概念
  • 怎样做网站能百度能搜到设计网站公司哪里好
  • 网站收缩栏专业定制网站公司
  • 烟台网站建设方案托管无锡网站制作企业
  • 网站网页是怎么做的用什么做网站 优化
  • 数据网站怎么做的网站开发的开题报告引言
  • 苏州专业网站制作设计做网站上海
  • 做网站可以用中文域名备案嘛山东省住房和城乡城乡建设厅网站
  • 网站建设推广多少钱站长工具seo综合查询关键词
  • 分类信息网站平台的推广做网站的花费
  • 还原wordpress站点地址恢复网站都要备案吗
  • 如何建立营销性企业网站论文如何修改wordpress
  • 全网营销销售郑州seo网站管理
  • dw怎么做网站首页邯郸网站建设品牌加盟
  • 辽宁省建筑工程造价信息网深圳市seo点击排名软件价格
  • 网站建设宗旨是指建设中英文网站
  • 浙江网站建设价格低东莞网站建设推广多少钱
  • 网站服务器重做系统怎么做快速提升网站权重
  • 怎么做自己的html网站网站收录不好的原因
  • 武夷山住房和城乡建设局网站网站提权
  • 电 器建设网站目的及功能定位百度的网站域名
  • 个人备案网站类型网站制作 徐州
  • 北京网站建设推贵州能源网站 中企动力建设
  • 鲅鱼圈网站在哪做vs2013网站开发教程
  • 花艺企业网站建设规划wordpress首页文件
  • 东莞建站模板源码交易所网站开发