八月瓜首页 > 专利查询 > >正文

实现单独的类装载器的方法和设备

基本信息

  • 申请号 CN00810259.7 
  • 公开号 CN1156753C 
  • 申请日 2000/07/13 
  • 公开日 2004/07/07 
  • 申请人 太阳微系统有限公司  
  • 优先权日期  
  • 发明人 T·叶 B·H·卡尔德 J·D·里瓦斯 J·D·库尔特尼  
  • 主分类号  
  • 申请人地址 美国加利福尼亚州 
  • 分类号  
  • 专利代理机构 中国专利代理(香港)有限公司 
  • 当前专利状态 发明专利权部分无效宣告的公告 
  • 代理人 吴立明 
  • 有效性 期限届满 
  • 法律状态 【期限届满】
  •  

权利要求书


1.一种装载并卸载与一个应用程序相关的类的方法,该方法包 括: 为该应用程序构造一类装载器,该类装载器适用于装载与该应用 程序相关的类; 使用该类装载器来装载与该应用程序相关的一个或多个类,这样 该类装载器就保持对这一个或多个类的引用;和 对用于该应用程序的类装载器解除引用,这样该类装载器就变为 无法访问。

2.如权利要求1的方法,其中的对用于该应用程序的类装载器解 除引用包括标记类装载器为无法访问。

3.如权利要求1的方法,其中的对用于该应用程序的类装载器解 除引用包括把对类装载器的引用设置为空。

4.如权利要求1的方法,其中对用于该应用程序的类装载器解除 引用是在该应用程序的执行结束时或者该应用程序的执行被终止时执 行的。

5.如权利要求1的方法,其中的应用程序是一个Java程序。

6.如权利要求1的方法,进一步包括: 执行应用程序; 其中对用于该应用程序的类装载器解除引用是在应用程序的执行 被终止时执行的。

7.如权利要求1的方法,进一步包括: 销毁应用程序; 其中对用于该应用程序的类装载器解除引用的操作是在应用程序 被销毁时执行的。

8.如权利要求1的方法,进一步包括: 执行垃圾回收以删除由已被解除引用的类装载器所引用的一个或 多个类。

9.如权利要求1的方法,进一步包括: 标记由已被解除引用的类装载器所引用的一个或多个类为无法访 问。

10.如权利要求8的方法,其中执行垃圾回收以删除由被解除引 用的类装载器所引用的一个或多个类的步骤包括: 确定该类装载器为无法访问; 确定该无法访问的类装载器有一个或多个类与之相关;和 标记这一个或多个类为无法访问。

11.如权利要求10的方法,进一步包括: 释放与该类装载器相关的存储器;及 释放与该一个或多个类相关的存储器。

12.如权利要求1的方法,进一步包括: 搜索所有无法访问的对象和类;和 从相关存储区域中删除这些无法访问的对象和类,其中每个对象 是一个类的一个实例。

13.如权利要求1的方法,进一步包括: 释放由已被解除引用的类装载器和相关的类所消耗的存储器。

14.如权利要求13的方法,其中释放由已被解除引用的类装载器 和相关的类所消耗的存储器的步骤包括: 标记该类装载器为无法访问; 从相关的存储器区域删除无法访问的类装载器; 确定无法访问的类装载器有一个或多个相关的类; 标记这一个或多个相关的类为无法访问; 搜索存储器中无法访问的类;和 从相关的存储器区域删除这一个或多个相关的类。

15.如权利要求14的方法,其中在两种途径中执行垃圾回收,其 中从相关存储器区域删除无法访问的类装载器是在第一个途径中执 行,从相关存储器区域删除一个或多个相关的类是在第二个途径中执 行。

16.一种装载并卸载与一个应用程序相关的类的方法,该方法包 括: 接收一个装载信号,该信号指示应用程序将要被装载; 为该应用程序构造一个类装载器,该类装载器适用于装载与该应 用程序相关的类; 接收一个启动信号,该信号指示应用程序将要被启动; 使用该类装载器装载与该应用程序相关的一个或多个类,这样该 类装载器就保持对该一个或多个类的引用;和 对用于该应用程序的类装载器解除引用,这样该类装载器就变成 无法访问。

17.如权利要求16的方法,其中构造类装载器对应于接收装载信 号执行,使用类装载器装载与该应用程序相关的一个或多个类对应于 接收启动信号执行。

18.如权利要求16的方法,进一步包括: 接收一个停止信号,该信号指示应用程序将要被停止。

19.如权利要求18的方法,其中对类装载器解除引用是在接收到 停止信号时执行的。

20.如权利要求16的方法,其中对类装载器解除引用是在应用程 序的执行完成时或应用程序的执行被负责构造类装载器的应用程序管 理器终止时执行的。

21.一种装载与一个或多个应用程序相关的类的方法,该方法包 括: (a)构造一个应用程序管理器,该管理器适用于为一个应用程序 构造一个类装载器并在该应用程序的执行结束时或该应用程序的执行 被终止时对构造出的类装载器解除引用,该类装载器适用于装载与应 用程序相关的类; (b)接收一个应用程序; (c)使用应用程序管理器为接收到的应用程序构造一个类装载 器;及 (d)使用该类装载器装载与该应用程序相关的一个或多个类,这 样该类装载器就保持了对这一个或多个类的引用;及 (e)使用该应用程序管理器以便在该应用程序的执行结束时或该 应用程序的执行被终止时对该类装载器解除引用。

22.如权利要求21的方法,进一步包括: 用应用程序管理器对用于该应用程序的类装载器解除引用,这样 该类装载器为无法访问。

23.如权利要求21的方法,进一步包括: 对每个接收到的应用程序重复步骤(b)、(c)和(d)。

24.如权利要求23的方法,进一步包括在一个应用程序的执行结 束或被终止时对与一个应用程序相关的一个类装载器解除引用,由此 在垃圾回收期间,使得该类装载器及相关类被卸载。

25.一种用于装载与一个或多个应用程序相关的类的系统,该系 统包括: 一个存储器;和 一个处理器,该处理器与存储器一同实现用于为一个应用程序构 造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程 序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应 用程序的执行终止时,应用程序管理器操作对所构造的类装载器解除 引用。

26.如权利要求25的系统,进一步包括: 用于装载与一个第一应用程序相关的类的一个第一类装载器。

27.如权利要求26的系统,其中该应用程序管理器被链接到该第 一类装载器。

28.如权利要求26的系统,进一步包括: 在其中存储与该第一应用程序相关的第一组类的存储器; 其中该第一类装载器被链接到该第一组类
29.如权利要求25的系统,其中该系统是数字电视。

30.如权利要求25的系统,其中该系统是一个数字电视接收机。

31.在数字电视中,一种用于装载与一个或多个应用程序相关的 类的系统,该系统包括: 一个存储器;和 一个处理器,该处理器与存储器一同实现用于为一个应用程序构 造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程 序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应 用程序的执行终止时,该应用程序管理器操作对所构造的类装载器解 除引用。
展开

说明书

技术领域 本发明通常涉及计算机软件。
尤其涉及实现适合于装载与应用程 序相关的类的类装载器。
背景技术 数字电视革命是广播电视历史上最为重大的事件之一。
随着数字 电视的出现,通过人造卫星、电缆和陆地电视频道的高速数据传输也 成为了可能。
数字电视将给用户提供更多的频道以及有很大提高的视 频和音频质量。
更为重要地是,数字电视用户处于真正的交互电视时 代。
例如,数字接收器将能够给我们带来很多加强的服务,从简单的 交互测试表演到空中的因特网,以及电视和web类型的内容的混合体。
随着数字电视市场的成长,节目开发者正在寻找更富有特色、效益更 高的可靠的软件平台,以便能在其上构造出下一代交互式电视服务, 像电子编程指南、视频点播和增强广播。
Java是最主要的商业化面向对象语言,它被设计为可移植语言。
一个Java程序写好以后只需编译一次就可运行在所有支持JAVATM平台 的兼容设备上。
例如,Java可以被插入到所有主要的Web浏览器中。
同样地,它作为软件平台也给下一代置顶盒和数字电视带来了很大的 希望。
在面向对象编程中,运行时数据由对象表示。
每个对象通过它的 类被定义,类代表对象的属性。
也就是说,对象是类的一个个体实例。
为了运行一个Java应用程序,需要把相关的类装入到存储器中。
随后 按照程序的流程构造这些类的实例。
大部分面向对象语言要求在不再 需要创建出来的对象时由程序员主动销毁它们。
然而,Java虚拟机的 实现使这个过程实现了自动化并完成了垃圾回收以增加可用存储器的 数量。
因此,当对象或存储器空间不再被引用时就由Java运行时环境 自动删除这些对象或进行“垃圾回收”。
即使不再被引用的类实例通过垃圾回收被从存储器中移走,相关 的类并未从存储器中移走。
此外,既然Java是动态语言,通常也完成 了类的装载。
然而目前还没有一种机制用于卸载类,即使已经不再需 要它们。
随之的结果是JAVA平台最后将存储大量的类。
在桌面环境中,存储器是相对无限的,因而也就不需要卸载类。
另外,一旦关闭浏览器,类就被从存储器中清除出去。
然而在嵌入式 系统环境中存储器是非常宝贵的资源,在数字电视领域尤其如此。
而 且,在数字电视环境中运行多个应用程序的情况将更为普通。
例如, 当电视观看者转换频道时,每个相关服务将很可能要求一个新的应用 程序并装载几个类。
结果是存储器被连续分配给装入的类直到有限的 存储器数量被消耗怠尽。
一旦存储器耗尽,将不可能再运行其它任何 程序。
因此人们非常希望能够监控存储器的使用并移走应用程序不再 需要的类。
因为不希望在出现错误时重新开启电视机,这一点就显得 尤其重要。
由于上述原因,需要有更好的方法来管理存储器中的类存储。
发明内容 本发明使类能够在它们不再被需要时从存储器中动态卸载。
这部 分是通过与每个应用程序相关的单独的类装载器来实现的。
这样一来, 就可以管理数字电视中的存储器消耗以便更有效地利用有限的存储器 资源。
根据本发明的一个方面,提供一种装载并卸载与一个应用程序相 关的类的方法,该方法包括: 为该应用程序构造一类装载器,该类装载器适用于装载与该应用 程序相关的类; 使用该类装载器来装载与该应用程序相关的一个或多个类,这样 该类装载器就保持对这一个或多个类的引用;和 对用于该应用程序的类装载器解除引用,这样该类装载器就变为 无法访问。
根据本发明的另一个方面,提供一种装载并卸载与一个应用程序 相关的类的方法,该方法包括: 接收一个装载信号,该信号指示应用程序将要被装载; 为该应用程序构造一个类装载器,该类装载器适用于装载与该应 用程序相关的类; 接收一个启动信号,该信号指示应用程序将要被启动; 使用该类装载器装载与该应用程序相关的一个或多个类,这样该 类装载器就保持对该一个或多个类的引用;和 对用于该应用程序的类装载器解除引用,这样该类装载器就变成 无法访问。
根据本发明的另一个方面,提供一种装载与一个或多个应用程序 相关的类的方法,该方法包括: (a)构造一个应用程序管理器,该管理器适用于为一个应用程序 构造一个类装载器并在该应用程序的执行结束时或该应用程序的执行 被终止时对构造出的类装载器解除引用,该类装载器适用于装载与应 用程序相关的类; (b)接收一个应用程序; (c)使用应用程序管理器为接收到的应用程序构造一个类装载 器;及 (d)使用该类装载器装载与该应用程序相关的一个或多个类,这 样该类装载器就保持了对这一个或多个类的引用;及 (e)使用该应用程序管理器以便在该应用程序的执行结束时或该 应用程序的执行被终止时对该类装载器解除引用。
根据本发明的另一个方面,提供一种用于装载与一个或多个应用 程序相关的类的系统,该系统包括: 一个存储器;和 一个处理器,该处理器与存储器一同实现用于为一个应用程序构 造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程 序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应 用程序的执行终止时,应用程序管理器操作对所构造的类装载器解除 引用。
根据本发明的另一个方面,提供在数字电视中,一种用于装载与 一个或多个应用程序相关的类的系统,该系统包括: 一个存储器;和 一个处理器,该处理器与存储器一同实现用于为一个应用程序构 造一个类装载器的应用程序管理器,该类装载器用于装载与该应用程 序相关的类,当该应用程序的执行结束或由该应用程序管理器将该应 用程序的执行终止时,该应用程序管理器操作对所构造的类装载器解 除引用。
依照本发明的一个方面,应用程序管理器适于为应用程序构造类 装载器。
例如,可以构造(例如,实例化)一个特定的类装载器来装载 与应用程序相关的类,该程序通过数字电视接收器被装载。
因此,用 类装载器来装入与该程序相关的一个或多个类。
依照本发明的另一个方面,应用程序管理器适用于监视并管理应 用程序的执行,并在程序执行结束或程序的执行被终止(如,被信号终 止)时对构造出的类装载器解除引用。
这样,当应用程序管理器确定程 序已经结束时,既然已经不再需要这些类就把它们卸载掉。
这部分是 通过对用于应用程序的类装载器解除引用使得它们无法访问而实现 的。
既然类装载器是最后一个对由它装入到执行环境中的类保持引用 的,在类装载器被解除引用之后,如果运行时环境中没有其它实例引 用这些类,它们也就成为无法访问。
因此,当执行垃圾回收时,这些 类都被有效地卸载。
然而依照本发明的另一个方面,本发明是实现在JAVA平台上的。
JAVA平台为交互服务中新出现的类提供理想的开发和配置平台。
Java 编程语言为节目开发者提供对它们的应用程序的“外观(look and feel)”的高度的控制和灵活性,使他们能够给观众提供最为生动和 有说服力的交互电视体验。
垃圾回收过程以杠杆作用把存储分配和存 储器管理的负担从程序员身上移到平台上。
另外,用Java编程语言写 的交互式电视程序提供了安全性、可扩展性以及在各种不同的电视接 收器之间的可移植性,节省了节目开发者把他们的交互式程序推向市 场所需要的时间和金钱。
本发明使用单独的类装载器以装载和卸载与每个应用程序相关的 类。
当确认已经不再需要相关的类时,通过对适当的类装载器解除引 用,垃圾回收过程用杠杆作用来使可用存储器的数量最大化。
这在那 些存储器资源有限的环境,如数字电视接收机中尤其重要。
附图说明 通过下面的描述连同附图,可以最好地理解本发明及其优势。
图1是描述了在其中实现本发明的系统的方框图。
图2是描述了在类的装载过程中本发明的一个实施方案的方框 图。
图3是描述了在程序的执行过程中本发明的一个实施方案的方框 图。
图4是描述了在程序执行完毕之后本发明的一个实施方案的方框 图。
图5是描述了在一轮垃圾回收完成之后本发明的一个实施方案的 方框图。
图6是依照本发明的一个实施方案在数字电视接收机上执行一个 应用程序的一种方法的流程图。
图7是依照本发明的一个实施方案在图6所示的应用程序执行过 程中卸载类的程序管理器的一种实现方法的流程图。
图8是描述了一个适用于实现本发明的典型的通用计算机系统的 方框图。
具体实施方式 在下面的描述中,阐明了大量的特定细节以便能够提供对本发明 的彻底理解。
然而,对那些本领域的专家来说,不使用这些特定细节 中的一些或全部也可以实践本发明。
在其它实例中,一些广为所知的 过程步骤并没有被详细描述出来,这样做是为了避免不必要的模糊本 发明。
在这里描述的发明能够使类被动态卸载。
尤其是,每个类可能由 一个类对象表示,它包括相关类的定义。
因此,术语“类”和“类对 象”始终被交替使用。
本发明被描述在数字电视和数字电视接收机环境中。
图1以框图 描述了数字电视接收机样板。
如图所示,信号通过天线102被接收, 由调谐模块104进行调谐,处理MPEG2传输流106。
接着反多路复用 器处理包括视频流112、音频流114和数据流116的加密的MPEG流110。
随后这三个流由条件访问子系统118进行处理。
例如,条件访问子系 统118可以使用密钥管理信息120和解密信息122(例如加密算法)。
条件访问子系统产生解密的MPEG流123,包括视频流124、音频流125 和数据126,所有这些都被解压出来。
解码器128随后处理解密后的MPEG 流123,并把解码后的视频数据转发给帧缓冲区130,把解码后的音频 数据传送给扬声器132。
Java虚拟机(JVM)是可以用来通过处理由图1中所示数字电视接 收机接收到的信息实现本发明的平台。
尤其在处理数据126时,它可 以包含由许多类组成的Java应用程序。
因此人们希望能够在数字电视 或数字电视接收机(或置顶盒),它们通常都受限于存储器中,动态地 装载和卸载类以将存储器的消耗减小到最低。
本发明通过为每个应用程序初始化一个单独的类装载器使得对每 个应用程序能够装载和卸载类。
图2用框图描述了本发明的一个实施 方案。
如图所示,应用程序管理器202用来管理类的装载和平台上应 用程序的执行。
图7详细描述了实现应用程序管理器202的一种方法。
尤其是通过为每个应用程序创建一个单独的类装载器来部分实现对类 的装载的管理。
这样,应用程序管理器202初始化第一个类装载器204 用于装载与第一个应用程序(APP1)相关的类。
同样地,应用程序管理 器202初始化第二个类装载器206用于装载与第二个应用程序(APP2) 相关的类。
应用程序管理器202和类装载器204、206被存储在存储器 208中。
随后类装载器204和206分别为各自的应用程序装载类。
尤 其,如图所示,第一个应用程序类装载器204装入与第一个应用程序 相关的第一组类210,第二个应用程序类装载器206装入与第二个应 用程序相关的第二组类212。
这样,第一组和第二组应用程序类210 和212就被装入到执行环境214(例如Java虚拟机)中。
一旦装载完毕, 就可以在每个应用程序的执行期间访问这些类。
现在看图3,以框图形式描述了在类装载过程完成之时本发明的 一个实施方案。
例如,图3与JVM(Java虚拟机)上第一第二个应用程 序的执行相关。
如图所示,应用程序管理器202保持到第一个应用程 序类装载器204和第二个应用程序类装载器206的一个链接(例如引 用)。
另外,第一个应用程序类装载器204保持到第一组应用程序类302 的一个链接(例如,引用)。
同样地,第二个应用程序类装载器206保 持到第二组应用程序类304的一个链接(例如,引用)。
可以用指针来 实现每个链接。
应用程序管理器202在各自的应用程序执行过程中继 续引用所有的类装载器204和206。
另外,类装载器204和206在各 自应用程序执行过程中分别引用应用程序类302和304。
一种实现中, 第一和第二组应用程序类被存储在JVM栈里,驻留在存储器中(例如, 存储器208)。
该存储器可以是随机访问存储器(RAM)。
当一个应用程序的执行结束或者应用程序在完成之前就被停止 时,应用程序管理器202对适当的类装载器解除引用。
图4用框图描 述了第二个应用程序的执行完成时本发明的一个实施方案。
当第二个 应用程序的执行被过早地终止时,程序管理器202对第二个应用程序 类装载器206解除引用。
也就是说,应用程序管理器202去掉402处 所示的到第二个应用程序类装载器的链接。
例如,对第二个应用程序 类装载器206的初始引用变量可以被设置为空。
例如,在第二个类装 载器206被解除引用之后,对它的引用变量被设置为空,它因此变成 存储器中一个无法访问的对象。
如上所述,当一个对象(也就是类的一 个实例)或类没有对它的引用时,它们是“无法访问”的,因此将被进 行垃圾回收。
既然作为对第二组应用程序类304和相关实例的最后一 个引用的第二个类装载器206已经无法访问,垃圾回收406随后就移 走相关的类304(也就是类对象)和类304的所有实例(也就是对象), 因为它们在这一时刻已经无法访问。
这样,由解除引用的类装载器206 引用的类被进行垃圾回收,分配的存储器被还给可用存储器池。
JVM 上的附加细节,包括“无法访问性”和垃圾回收,都包括在“Java虚 拟机规范”,第二版,Lindholm,Yellin,ISBN 0-201-43294-3,它因此 被按照引用合并起来。
垃圾回收完成以后,所有无法访问的类和对象都已不在存储器当 中。
如图5所示,一旦垃圾回收在图4所示的系统上被执行,无法访 问的类装载器、类以及相关实例都被从存储器中删除。
结果是只有第 一个应用程序装载器204和第一组类依然保留。
因此,本发明以一种 动态模式释放存储器以使有限的存储器资源(例如,数字电视接收机) 能被更好地利用。
图6用流程图描述了依照本发明的一个实施方案通过数字电视接 收机执行一个应用程序的一种方法的过程。
该过程从模块602开始, 在模块604处数字电视接收机被打开。
JavaTM环境在模块606启动。
在模块608构造出一个应用程序管理器并在模块610运行。
许多数字电视服务可以由像图1中所示的数字电视接收机接收 到。
除了接收多数频道之外,这些服务的范围从交互电视到近似的视 频点播,到专用编程。
当用户在模块612选中一个服务时,与被选中 服务相关的应用程序可以在模块614通过数字电视接收机被接收到。
例如,当用户选择了一个Disney服务时,可能会有一个Disney应用 程序被接收用于增强的观看体验。
应用程序管理器负责监视并管理应用程序的执行。
例如,应用程 序管理器在模块616被通知去装载并执行应用程序。
当在模块618接 收到一个启动信号(例如,通过数字电视接收机)以启动应用程序时, 应用程序管理器在模块620被通知启动应用程序。
应用程序执行-直到 在模块622接收到一个停止信号(例如,通过数字电视接收机),应用 程序管理器在模块624被通知停止应用程序。
整个过程在模块626结 束。
可以用多种方式来实现应用程序管理器以确保类被装载并在应用 程序不再需要它们时被卸载。
图7是一个过程流程图,描述了依照本 发明的实施方案,实现应用程序管理器以在图6所示的应用程序执行 过程中卸载类的一种方法。
过程在模块702开始,应用程序管理器在 模块704执行适当的初始化。
另外,应用程序管理器负责管理一个或 多个应用程序的执行。
这样,应用程序管理器在图6所示的模块614 和616之前等待信号(例如,通过电视接收机),该信号指示应用程序 管理器将要装载程序(例如,从广播数据流接收)、启动程序或停止程 序。
因此应用程序管理器在模块706等待这样一个信号,如图所示。
当应用程序管理器在模块708接收到指示它将要装载一个应用程序的 装载信号时,应用程序管理器在710为应用程序构造一个类装载器。
如上所述,类装载器被设计用于装载与应用程序相关的一个或多个类。
当应用程序管理器在模块712接收到一个启动信号时,应用程序管理 器用适当的的类装载器在714装载与应用程序相关的应用程序类。
例 如,可以按照应用程序的安全性限制装载应用程序类。
这样,类装载 器可以执行适当的安全性检查以确认应用程序是否能被装载。
应用程 序管理器随后在模块716开始应用程序的执行并在模块718等待直到 应用程序结束或者在完成之前就被终止。
应用程序管理器通过从应用 程序或其它指示应用程序的执行被终止的过程接收到的信号或消息识 别应用程序的终止或完成。
当应用程序管理器接收到一个停止信号,在模块720处在应用程 序完成之前终止它的执行,应用程序在模块722被销毁(例如删除)。
在模块724执行与销毁的应用程序相关的清除。
用于该应用程序的类 装载器随后也在模块726被解除引用。
如果应用程序在模块728执行完毕,就向应用程序管理器发送一 个信号(例如,通过接收器从应用程序或广播环境而来)以初始化应用 程序的清除。
例如,与应用程序相关的任何文件均被删除,任何相关 的线程均被清除。
另外,当不再需要时用于登记对每个应用程序的引 用的数据也被删除掉。
该过程仍然在模块724继续清除应用程序并在 模块726对用于该应用程序的类装载器解除引用。
也就是说,可以通 过把指向类装载器的指针(例如,与应用程序管理器相关的引用变量) 设置为空来去掉类装载器和应用程序管理器之间的链接,用来实现解 除引用。
另外,类装载器也可以被标记为无法访问。
既然类装载器是 最后一个对它所装入执行环境的类保持引用的,当类装载器被解除引 用之后这些类也变为无法访问。
因此,当垃圾回收被执行时这些类可 以被有效卸载。
可以用多种方法执行垃圾回收以卸载与已被解除引用的类装载器 相关的类。
例如,可以用两个分开的途径执行垃圾回收。
在第一个途 径中,垃圾回收搜寻所有已经无法访问的对象和类。
这时,可以确定 类装载器无法访问以及由它装载的类。
此时与无法访问的类装载器相 关的类可以被标记为无法访问。
此外,既然类装载器无法访问,垃圾 回收释放分配的存储器以对类装载器解除引用。
在第二个途径中,由 现在不存在的类装载器装载的类已经在前一途径中被标记为无法访 问,在这一途径中将发现被从存储器中清除它们。
本发明可以被实现在任何合适的计算机系统上。
图8描述了一个 适用于实现本发明的典型的通用计算机系统1002。
该计算机系统可以 采用任意合适的形式。
例如,该计算机系统可以与数字电视接收器或 置顶盒集成在一起。
可以调整计算机系统1002,更明确地说是CPU1004以支持虚拟机, 那些本领域的专家会乐于做这些。
计算机系统1002包括任意数量的处 理器1004(也称为中央处理单元,或CPU),它可被连结到包括主存储 设备1006(通常是只读存储器,或ROM)和主存储设备1008(通常是随 机访问存储器RAM)的存储器设备上。
众所周知,ROM只能往CPU单向 传送数据和指令,而RAM可以双向传送数据和指令。
主存储设备1006 和1008可以包括任意适合计算机读取的介质。
CPU1004通常可以包括 任意数量的处理器。
二级存储介质1010,通常是大容量存储设备,也可以双向连结到 CPU1004上并提供额外的数据存储空间。
大容量存储设备1010是计算 机可读的介质,可被用来存储包括计算机代码、数据等在内的程序。
通常,大容量存储设备1010是像硬盘这样的存储介质,通常要比主存 储设备1006、1008慢一些。
CPU1004也可被连结到一个或几个输入/输出设备1012上,包括 视频监视器、轨迹球、键盘、麦克风、触控式显示器、传感器卡阅读 器、磁带或纸带阅读器、写字板、指示笔、声音或手写识别器,或其 它已经的输入设备如其它计算机。
输入/输出设备并不仅仅局限于这 些。
最后,CPU1004可以用图中所示的网络连接在1014被连结到一个 计算机或电信网络上,例如因特网或内联网。
可以期望CPU1004从网 络接收信息或在执行上述方法步骤期间向网络输出信息。
这些信息通 常被表示为可以由CPU1004执行的指令序列,可以从网络接收或向网 络输出,例如,可以用载波中的数字信号形式。
本发明能够使类在确定不再需要它们时被卸载掉。
通过为每个应 用程序使用一个单独的类装载器,可以有效地装载类并在不需要时(例 如,当应用程序结束或被终止时)卸载掉它们。
此外,通过使用优化的 类装载器,提供一个附加的安全级别以阻止未获授权的应用程序被装 载并被执行。
虽然这里显示并描述了本发明的说明性的实施方案和应用,在本 发明的概念、范围和精神内可能会有很多变化和更改,那些具有本领 域基本技巧的人在精读了这个应用之后应该能够明白这些变化和更 改。
例如,本发明被描述为在数字电视接收机的环境中使类能够被卸 载。
然而,本发明也可用于在其它环境中装载和卸载类。
此外,虽然 本发明被描述为实现在JAVA平台上,但它也可实现在多种使用面向对 象语言的平台或环境上。
这样,“无法访问”通常指的是那些被解除 引用的实体无法访问。
而且,上述过程块只是说明性的。
因此,类的 装载和卸载可以使用别的过程块来执行。
因此本发明的实施方案可以 被看作说明性的和非限制性的,本发明并不局限于到目前所给出的细 节,但应该在所附权利要求的等价范围内进行修改。
展开

查看更多专利详情信息请先登录或注册会员

相关专利类别推荐

获取手机验证码,即可注册成为会员

专利详情咨询

咨询内容

姓名

手机

验证码

用户登录

手机号

手机验证码

提示

不能再减了!!!

提交成功

八月瓜客服中心已经收到您的信息,正在为您派遣知识产权顾问。知识产权顾问会携带贴心的服务以闪电搬的速度与您联系。

扫一扫关注八月瓜微信 创业一手掌握