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

曲靖市网站建设_网站建设公司_一站式建站_seo优化

西安市免费做网站,wordpress小说采集,免费网上咨询医生是哪个网,怎么做网站充值网站一、类加载器简介 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现#xff0c;以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块被称为“类加载器”。 类加载器虽然只用于实现类的…一、类加载器简介 虚拟机设计团队把类加载阶段中的“通过一个类的全限定名来获取描述此类的二进制字节流”这个动作放到Java虚拟机外部去实现以便让应用程序自己决定如何去获取所需要的类。实现这个动作的代码模块被称为“类加载器”。 类加载器虽然只用于实现类的加载动作但它在Java程序中起到的作用却远远不限于类加载阶段。对于任意一个类都需要由加载它的类加载器和这个类本身一同确立其在Java虚拟机中的唯一性。比较两个类是否“相等”只有在这两个类是由同一个类加载器加载的前提之下才有意义否则即使这两个类是来源于同一个Class文件只要加载它们的类加载器不同那这两个类就必定不相等。 二、双亲委派模型 站在Java虚拟机的角度讲只存在两种不同的类加载器一种是启动类加载器Bootstrap ClassLoader这个类加载器使用C语言实现是虚拟机自身的一部分另外一种就是所有其他类的加载器这些类加载器都由Java语言实现独立于虚拟机外部并且全部都继承自抽象类java.lang.ClassLoader。 类加载器 (1) 启动类加载器Bootstrap ClassLoader  将存放于JAVA_HOME\lib目录中的或者被-Xbootclasspath参数所指定的路径中的并且是虚拟机识别的仅按照文件名识别如 rt.jar 名字不符合的类库即使放在lib目录中也不会被加载类库加载到虚拟机内存中。启动类加载器无法被Java程序直接引用。 (2) 扩展类加载器Extension ClassLoader 将JAVA_HOME\lib\ext目录下的或者被java.ext.dirs系统变量所指定的路径中的所有类库加载开发者可以直接使用扩展类加载器。 (3)应用程序类加载器 Application ClassLoader  负责加载用户类路径(ClassPath)上所指定的类库开发者可直接使用。 类加载器双亲委派模型如下图所示 工作过程 如果一个类加载器接收到了类加载的请求它首先把这个请求委托给他的父类加载器去完成每个层次的类加载器都是如此因此所有的加载请求都应该传送到顶层的启动类加载器中只有当父加载器反馈自己无法完成这个加载请求它在搜索范围中没有找到所需的类时子加载器才会尝试自己去加载。 好处 Java类随着它的类加载器一起具备了一种带有优先级的层次关系。例如类java.lang.Object它存放在rt.jar中无论哪个类加载器要加载这个类最终都会委派给启动类加载器进行加载因此Object类在程序的各种类加载器环境中都是同一个类。相反如果用户自己写了一个名为java.lang.Object的类并放在程序的Classpath中那系统中将会出现多个不同的Object类java类型体系中最基础的行为也无法保证应用程序也会变得一片混乱。 三、双亲委派模型的实现 实现双亲委派模型的代码都集中在java.lang.ClassLoader的loadClass方法中如下所示 protected Class? loadClass(String name, boolean resolve)throws ClassNotFoundException{synchronized (getClassLoadingLock(name)) {// First, check if the class has already been loadedClass? c findLoadedClass(name);if (c null) {long t0 System.nanoTime();try {if (parent ! null) {c parent.loadClass(name, false);} else {c findBootstrapClassOrNull(name);}} catch (ClassNotFoundException e) {// ClassNotFoundException thrown if class not found// from the non-null parent class loader}if (c null) {// If still not found, then invoke findClass in order// to find the class.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.cnblogs.com/lanxuezaipiao/p/4138511.html
http://www.ihoyoo.com/news/8547.html

相关文章:

  • 有哪些网站可以自己做加视频济南网站开发设计
  • 做网站友情链接互换表白网址在线制作平台
  • 如何根据网址攻击网站做外卖在哪个网站做好
  • 桂林做网站的公司有哪些网站设计建设收费标准
  • 企业网站维护是指重庆建一个网站大概要多少钱
  • 广西企业建站怎么卸载2345网址导航
  • 大同推广型网站建设wordpress设置访问密码
  • 快速搭建网站模板个人备案后做淘客网站
  • 网站上的地图导航怎么做的广州网站推广策划案
  • 北京做网站电话现在流行用什么语言做网站
  • 中国网站用Cn域名网页设计培训班哪里好
  • 建立网站对吗大学生网站作品
  • 如何做全景素材网站石家庄医院网站建设
  • 网站建设玖金手指谷哥四wordpress 百度百家
  • 公司怎么建设网站首页西安凤城二路网站建设
  • 南京住房和城乡建设部网站长春如何建立一个平台网站
  • 做任务的网站有哪些在线网站分析工具
  • 个人网站做多久有效果wordpress 美化 插件大全
  • 官网网站建设需求文档全网营销包括什么
  • 沙井品牌网站建设小程序源码网网盘
  • 怎么用 c文件做网站wordpress 和shopify
  • 驻马店制作网站的公司设计一个网站开发方案
  • 网站的建立怎么看网站是否安装百度商桥代码
  • wordpress post_type如何优化网页加载速度
  • 东莞网站建设58三门峡高端网站开发
  • 网站做网站广告wordpress怎么添加连接
  • 济宁做网站的公司公司网页动画
  • 深圳网站搭建价格网站建设后期维护
  • 网站开发零基础培训学校泊头网站建设价格
  • 网站上的图片一般多大做网站一个月30ip