[发明专利]一种JAVA卡对象管理方法无效
| 申请号: | 201210236254.4 | 申请日: | 2012-07-04 |
| 公开(公告)号: | CN102799660A | 公开(公告)日: | 2012-11-28 |
| 发明(设计)人: | 刘宏梅;芦蓉;崔炳荣 | 申请(专利权)人: | 北京中电华大电子设计有限责任公司 |
| 主分类号: | G06F17/30 | 分类号: | G06F17/30 |
| 代理公司: | 暂无信息 | 代理人: | 暂无信息 |
| 地址: | 100102 北京市朝阳*** | 国省代码: | 北京;11 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 java 对象 管理 方法 | ||
技术领域
本发明涉及智能卡领域,尤其涉及一种JAVA卡对象管理方法。
背景技术
智能卡自诞生起,几十年来,随着集成电路技术、计算机技术和信息安全技术的发展,从接触式卡发展到射频卡甚至多界面卡,从单一应用发展到多应用,种类更加丰富,技术也更趋先进。目前这样,支持多应用的智能卡软件平台成为关键,特别是JAVA卡。由于JAVA卡是运行时解析,因此对象的定位速度会很大的影响JAVA卡运行时的性能;另外,JAVA卡允许发卡后动态下载、删除应用,随着用户对应用的更替,JAVA卡的用户空间也是很宝贵的资源;JAVA卡的对象管理方式也会影响到JAVA卡空间的利用效率。在已有的实现中,JAVA卡的对象使用2级表索引的方式,对象占用空间跟对象类型相关,最少的占用8字节;这种管理方案,不仅对象解析、访问的效率比较低(需要解析2~3次,才可以访问到对象),而且对象表也需占用大量的存储器空间,而不简洁的对象头表示方式,也对存储器空间造成了浪费。
针对JAVA卡技术的上述缺陷,本发明要提供一种高效率的JAVA卡对象管理方法,方便对象的定位,节省堆空间资源,提高JAVA卡的空间使用效率。
发明内容
本发明的目的是提供一种高效率的JAVA卡对象管理方法。
JAVA卡对象管理方法的目的是:加速对象引用在堆空间中的定位速度,合理利用空间,减少资源浪费。
为了实现上述发明目的,本方法提供的JAVA卡对象管理方法包括以下步骤:
JAVA卡对象的对象头与对象体在堆中分离;任何类型的对象头都固定占用8字节长度,对象体则根据JAVA卡对象的具体内容而占用不同的堆存储空间或者RAM空间。
对象头分配在存储器堆空间的一端,对象体则在存储器堆空间的另一端分配或在RAM空间进行分配。;举例来说,从低地址往高地址分配对象头空间、从堆的高地址往低地址分配持久性对象体空间;或者,反之,从低地址往高地址分配持久性对象体空间,从堆的高地址往 低地址分配对象头空间。
JAVA卡动态下载的包代码所使用空间,也与对象体空间的使用方式相同。
预先分配一些对象头空间,并做好初始化;当预留的对象头空间已使用时,以存储器的一个Page为单位再申请空闲空间,但,需要保证对象头空间的连续性。
对象头信息为8个字节,由于所有类型对象都是相同长度,因此对象头以Page为单位进行存储空间申请;申请的Page空间,按照每8字节为一个对象头块,再进行单独的空间管理;每个Page需要留出起始的8个字节,作为Page管理信息,该8字节的用途为标识本Page中每个对象头是否被使用的情况。
每个对象头块都对应Page头标识中的一个bit位,bit位置1,表明该块空间已经被分配;bit为置0,表明该对象头块为空闲。
新对象被创建时,首先申请对象头空间:从堆对象头使用空间开始,顺序检查每个Page头的标识字节,确定是否本Page中未被使用的空闲对象头块,如果有,则将空闲的对象头分配给新对象的头,并重新设置该对象头块所在Page的标识信息;然后申请对象体空间:如果是持久对象,从堆对象体使用空间一端的第一个空闲块开始,查找并分配适合大小的空闲空间作为对象体;如果是瞬态对象,则从RAM空间分配对象体。
当有垃圾对象被删除,则直接将该对象使用的对象头块所对应的page中标志信息的bit位置0;同时将对象体的空间释放,如果是持久对象,将释放的空间加入到堆的空闲块中统一管理,以供再次使用。
每个对象的头信息的最后3个字节为一个地址指针,内容为该对象内容在存储器堆空间的物理地址或者RAM空间地址。对象引用的表示方式为:存储器堆空间的Page编号和对象头在该Page中的块编号,,其中Page编码为:该Page起始地址/(除以)每个Page的大小;Page中以每8字节为一个块,块编号则从1开始,顺序递增。举例来说,存储器中每个Page大小为128字节,则该对象引用(2字节,即16bit)的表示方式为:12bit表示page编号,4bit表示page中块编号,则可以寻址:128×2^12=2^19,即可以表示512K的空间;同样类推,存储器中的Page大小为64字节、256字节或者512字节等,分别可以使用3bit、5bit或者6bit表示对象在Page中的块编号,而使用13bit、11bit或者10bit标识Page编号,都同样可以寻址512K空间。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京中电华大电子设计有限责任公司,未经北京中电华大电子设计有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201210236254.4/2.html,转载请声明来源钻瓜专利网。





