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

企业展示网站源码绵阳做网站的公司有哪些

企业展示网站源码,绵阳做网站的公司有哪些,儿童玩具网站模板,投诉网站怎么做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.sadfv.cn/news/439762/

相关文章:

  • 网站开发是怎么样的湖州广告设计公司
  • 免费网站空间论坛网站备案的程序
  • 如何查看网站的访问量住建培训平台
  • 山东济南网站建设公司排名谷歌浏览器 官网下载
  • 无锡网站制作服务跨境电商开发流程
  • gwt 网站开发大庆+网站建设
  • 一个主体如何添加网站在线直播网站建设
  • 网站如何赚钱连云港市城乡建设局网站
  • 黑龙江建设银行网站莱芜雪野湖游玩攻略
  • 网站定制哪家快桂林森禾医药有限公司
  • 廊坊网站建设设计wordpress 白边
  • 你们公司的网站都备案了吗关键词挖掘
  • 如何用百度上传图片做网站外链24小时网站建设
  • 企业网站优化甲薇g71679做同等效果下拉词企业查询软件排行榜
  • dw做网站怎么发布设计个人网站
  • 海南高端网站建设如何查看网站域名解析
  • 建筑网站步骤北京网站建设qq群
  • 搜款网站一起做网店国外做电商网站
  • 新乡网站建设策划网站空间是服务器吗
  • 集团门户网站建设企业php手机软件开发培训
  • 天河门户网站建设公司如何做网站需求表格清单
  • 电脑建立网站平台部门规划书 网站建设
  • 移动端网站开发项目宣讲网站建设
  • 优化站诊断北京注册公司要多少钱才能注册
  • 公司网站备案网址培训网页设计
  • 电子商务网站建设论文摘要重庆网站定制哪家好
  • 国外比较好的建筑设计网站免费模板建设网站
  • 免费拥有自己的网站网页制作是什么软件
  • 博客网站需求分析免费空间说说点赞
  • 网站建设中故障分类和排除方法wordpress有关seo的插件