当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:12:00  来源:本站整理

Java同享类[Java编程]

赞助商链接



  本文“Java同享类[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

要真正彼此断绝 Java 利用程序,实质上需求多个 JVM,但是启动本钱和内存占用使这种方法不那么抱负.而同享类可以同时办理这两个问题.在多 JVM 环境中,同享类通过将一组核心系统类装载到同享内存中,可以在多个 JVM 中同享这些类.这些同享类放到内存的一个同享区域中,它们在这里对全部 JVM 都是保持一致的.后果,同享类只需求在第一次利用时装载到内存中,这消除了在今后每次 JVM 调用时装载它们的固定本钱,并削减了每个 JVM 中的内存占用.

IBM 在 z/OS 平台上实现了同享类技术.Apple Computer Inc. 在 Mac OS X 上实现了名为 Java Shared Archive(JSA)的一种同享类,而 Sun 在 J2SE 1.5 版中引入了基于 JSA 技术的 Class Data Sharing (CDS).让我们解析一下这些实现是若何工作的.

IBM 的实现

自 J2SE 1.3.1 以来,IBM 就在 z/OS 平台上供应了同享类技术的实现.这种实现是通过让一个主(或称 master) JVM 将核心系统类装载到同享内存完成的,那么这毕竟是什么意思呢?

分化堆

内存分为同享堆和 Java 堆.主 JVM 将系统堆(即同享堆)分配到同享内存中,这里是安排系统类的地方.系统堆在主 JVM 的生存周期中一向存在,并且不会遭到垃圾汇集(GC)的影响.每一个后续(大概 worker)JVM 附加到这个系统堆上,如图 1 所示,并为自己的 Java 堆分配非同享内存,它会受垃圾汇集的影响.Java 堆包含特定于每一个 worker JVM 运行的利用程序的非同享类和全部实例化的对象.

图 1. 同享类分化堆

同享类装载器

每个 worker JVM 都可以通过将类放到同享类装载器的 classpath 中而将它们装载到同享堆中.同享类与普通类的装载方法一样——利用 parent-delegation 情势.

层次构造中的每一个类装载器查抄其缓存,肯定这个类能否已经装载.假如还没有装载,那么类装载器就向其父类装载器传送一个查抄装载恳求,这样一向上溯到层次构造顶部的 primordial 大概 bootstrap 类装载器.假如没有在任何缓冲区中发现这个类,那么每一个类装载器城市试图从自己的存储库中装载这个类,假如成功,就返回这个类.不然,它将恳求传送给层次构造中下面的装载器.这种模子保证了首先查抄最受信任的存储库,并避免信任程度低的代码通过采取与核心 API 成员相同的名字替换受信任的核心 API 类.

假如类是 primordial 类大概定义的类装载器是同享类装载器,那么类对象将在同享堆中成立,并且类标志为同享类.图 2 显示了 bootstrap 类装载器位于类装载器层次构造的顶部,并负责装载核心 API 中的类.这些类是信任程度最高的.扩大类装载器装载 extensions 目录中的尺度扩大 JAR 文件中的类.同享利用程序类装载器可以用于同享用户大概利用程序类.

图 2. 类装载器层次构造


  以上是“Java同享类[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 利用Javascript实现网页水印(非图片水印)
  • Java开辟环境的搭建
  • Ubuntu java安装与配置
  • 办理Ubuntu 10.04 Firefox3.6 Java浏览器插件不工作的问
  • Ubuntu重装后Java环境的设置
  • Sun Java进入Ubuntu 10.10软件中央
  • Ubuntu 10.10配置Java开辟环境
  • 在Ubuntu 10.10中配置Java环境变量的办法
  • Ubuntu下Java环境的搭建
  • Ubuntu 10.04 下安装 Java, JRE
  • Ubuntu 10.04下的搭建SUN JAVA开辟环境
  • Ubuntu 12.04安装java7
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .