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

佛山市企业网站seo点击软件青羊区企业网站建设策划

佛山市企业网站seo点击软件,青羊区企业网站建设策划,wordpress不显示评论框,青岛万维网站设计以下环境为 jdk1.8 两大类 分类成员语言继承关系引导类加载器bootstrap 引导类加载器C/C无自定义类加载器extension 拓展类加载器、application 系统/应用类加载器、user define 用户自定义类加载器Java继承于 java.lang.ClassLoader 四小类 Bootstrap 引导类加载器 负责加…以下环境为 jdk1.8 两大类 分类成员语言继承关系引导类加载器bootstrap 引导类加载器C/C无自定义类加载器extension 拓展类加载器、application 系统/应用类加载器、user define 用户自定义类加载器Java继承于 java.lang.ClassLoader 四小类 Bootstrap 引导类加载器 负责加载以下路径中 jar 包里的类 public class BootstrapClassLoader {public static void main(String[] args) {URL[] urls Launcher.getBootstrapClassPath().getURLs();for (URL url : urls) {System.out.println(url.toExternalForm());}} } Extension 扩张类加载器 由 Bootstrap 加载并将 Bootstrap 指定为 Extension 的父加载器 负责加载以下路径中 jar 包里的类 public class ExtensionClassLoader {public static void main(String[] args) {for (String path : System.getProperty(java.ext.dirs).split(;)) {System.out.println(path);}} } Extension 还可以加载开发者放入 java.ext.dirs 中 jar 包里的类 Application/System 应用/系统类加载器 由 Bootstrap 加载并将 Extension 指定为 Application 的父加载器 负责加载以下路径中 jar 包里的类 用户自己开发的类的 classpath如 com.example.demo.XXXClass package com.chen.main;public class MyMain {} 这个由用户创建的 com.chen.main.MyMain 类就会由 Application 加载 为什么是由 Application 加载呢这是因为类加载器的双亲委派按下不表 User Define 用户自定义类加载器 由 Application 加载并将 Application 指定为 User Define 的父加载器 为什么要有 User Define 用户自定义加载器 我们写了这么久代码好像也没有使用过用户自定义类加载器啊使用上面三种类加载器好像完全足够了。但是当有以下几种需求时就需要使用用户自定义加载器来实现了 隔离加载类 隔离 应用服务 与 框架 与 中间件 直接类的加载防止可能存在相同路径的类发生冲突 修改类加载的方式 可以不使用 Extension 和 Application让用户自定义类加载器在我们需要的时间点加载我们所需的类 扩展加载源 .class 文件一般以本地、网络、压缩包zip、jar、war等方式加载 而用户自定义类加载器可以自己扩展加载源比如在数据库、文件jsp、加密文件、各种电子设备中加载 .class 文件 防止源码泄露 我们写的 Java 程序生成的 .class 字节码文件很容易被反编译出源码。因此为了防止源码泄露就需要给字节码加密但是加密后的字节码就无法被 JVM 提供的类加载器加载了需要我们自己实现能够加载加密字节码的类加载器 负责加载用户指定路径的类 双亲委派 什么是双亲其实就是 parent 家长的意思因此也可以理解为 家长委派模式 前面提到了 Extension 的父加载器是 Bootstrap、Application 的父加载器是 Extension但是父加载器并不是父类的意思他们中间不存在继承关系 所谓 父加载器 只是 ClassLoader 类中的一个属性这个属性正是 parent 而 Extension 与 Application 都继承于 ClassLoader因此都有这个属性 类加载流程 向上委派 当要一个类加载器要加载类的时候 当前的类加载器没有加载过该类 会先将加载任务提交给父加载器即委派给双亲。如果父加载器也有父加载器那么加载任务会继续提交给父父加载器直到没有父类加载器为止即 parent 为 null但是 parent 为 null 并不代表没有父类加载器而是表示该加载器的父加载器为 Bootstrap 引导类加载器因为 Bootstrap 是用 C/C 写的并不是一个 Java 对象无法存入 parent 属性中。也就是说最终的加载任务都会给到 Bootstrap 引导类加载器 当前的类加载器已经加载过该类 直接结束最初加载器/  告知子加载器 加载完成非最初加载器 向下委派 Bootstrap 该类在 Bootstrap 类加载器负责的加载路径下 Bootstrap 完成该类的加载任务并告知将任务委派给他的子加载器 我搞定了完成该任务 该类不在 Bootstrap 类加载器负责的加载路径下 Bootstrap 无法完成该类的加载任务只能通知子加载器 我搞不定你自己试试看将任务退回给子加载器拒绝该任务 子加载器 该类在子加载器负责的加载路径下 子加载器完成该类的加载任务并告知将任务委派给他的子子加载器 我搞定了完成该任务 该类不在子加载器负责的加载路径下 子加载器无法完成该类的加载任务只能通知子子加载器 我搞不定你自己试试看将任务退回给子子加载器拒绝该任务 最初加载器 当最初加载器的所有祖宗都拒绝了最初加载器向上委派的类加载任务它就只能自己来尝试加载了 该类在最初加载器负责的加载路径下 最初加载器完成该类的加载任务 该类不在子加载器负责的加载路径下 最初加载器无法完成该类的加载任务由于它已经没有可以再向下委派的子加载器了最终只能抛出 ClassNotFound 异常在所有可加载的路径下找不到这个类 作用 避免重复加载类 比如 A 类和 B 类都有一个父类 C 类那么当 A 启动时就会将 C 类加载起来那么在 B 类进行加载时就不需要在重复加载 C 类了 确保程序安全性 使用双亲委派模型可以保证了 Java 的核心 API 不被篡改如果没有使用双亲委派模型而是每个类加载器自己加载就会出现一些问题。比如我们自己编写一个名为 java.lang.Object 类那么程序运行的时候AppClassLoader 就会加载这个 Object 类如果我们写的 Object 类有问题那么所有继承于 Object 类的类就会全部出错整个程序直接崩溃 down 掉
http://www.dnsts.com.cn/news/14237.html

相关文章:

  • 网站开发实习生有没有在网上做ps赚钱的网站
  • 网站开发历史广州网站设计成功柚米科技
  • 做网站的服务商网站不同颜色
  • 云南建设厅官方网站服务器做视频网站吗
  • 沈阳网站建设 成创建网站的几个公司
  • 福州企业建设网站网站建设公司及网络安全法
  • 咸阳做网站电话门户网站关键词
  • 郑州网站建站网站怎么样分销商城开发制作
  • php完整网站开发案例让人做网站需要注意什么
  • 做php网站用的软件互联网平台推广方案
  • 网站的技术支持上海网站营销seo
  • 网站开发设计方案书建立网站还是建设网站
  • 网站预算遵义seo快速排名
  • 网站 手机版秦皇岛抖音推广公司
  • 有搜索引擎作弊的网站旅游电子商务的网站建设
  • 提供视频下载的网站郑州优化网站关键词
  • 免费做网站. 优帮云注册一个网站要多少钱
  • 福田网站建设有限公司网站建设培训 通州
  • 株洲在线网站的目标客户怎样进入外贸公司网站
  • 中国制造网外贸网站外国高端网站设计
  • 网推拉新怎么做台州首页关键词优化
  • 网络营销资讯网站引擎搜索是什么意思
  • 在线做ppt模板下载网站有哪些利趣网站开发商
  • 如何查看一个网站的域名解析邯郸招聘网
  • 微信订阅号 网站开发江门网站设计华企立方
  • 快捷的中山网站建设广州新一期lpr
  • 成都哪里做网站好长沙网站建设价
  • 惠阳网站推广费用wordpress首页文章标签
  • 网站开发可能存在的困难做网站 然后百度推广
  • 百度网站开发合同范本视频网站开发研究背景