[發(fā)明專利]一種Java卡垃圾回收方法有效
| 申請?zhí)枺?/td> | 201110439970.8 | 申請日: | 2011-12-23 |
| 公開(公告)號: | CN102591788A | 公開(公告)日: | 2012-07-18 |
| 發(fā)明(設(shè)計)人: | 陸舟;于華章 | 申請(專利權(quán))人: | 飛天誠信科技股份有限公司 |
| 主分類號: | G06F12/02 | 分類號: | G06F12/02 |
| 代理公司: | 暫無信息 | 代理人: | 暫無信息 |
| 地址: | 100085 北京市*** | 國省代碼: | 北京;11 |
| 權(quán)利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 一種 java 垃圾 回收 方法 | ||
技術(shù)領(lǐng)域
本發(fā)明涉及信息安全領(lǐng)域,特別涉及一種Java卡垃圾回收方法。
背景技術(shù)
JAVA是純粹面向?qū)ο蟮木幊陶Z言,其程序以類為單位,程序運行期間會在內(nèi)存中創(chuàng)建很多類的對象。這些對象在完成任務(wù)之后,Java卡的垃圾回收機制會自動釋放這些對象所占用的空間,使回收的內(nèi)存能夠被再次利用,以提高程序的運行效率。垃圾回收能自動釋放內(nèi)存空間,減輕編程負擔,但垃圾回收的一個潛在缺點是它的開銷會影響程序性能。當前的JCVM(Java卡虛擬機)規(guī)范沒有對Java卡中如何實現(xiàn)垃圾回收做出明確的規(guī)定,目前的智能卡中多采用mark-delete算法進行垃圾回收,運用該算法進行垃圾回收時需要對整個內(nèi)存區(qū)域中的對象進行檢測,垃圾回收的效率并不高。
發(fā)明內(nèi)容
鑒于現(xiàn)有技術(shù)的不足,為了避免每次進行垃圾回收時都對整個內(nèi)存區(qū)域中的對象進行檢測,本發(fā)明提出了一種Java卡垃圾回收方法。
本發(fā)明采用的技術(shù)方案如下:
一種Java卡垃圾回收的方法,Java卡虛擬機接收到命令后,對所述命令進行解析,當所述命令為第一刪除命令時執(zhí)行步驟S1,當所述命令為第二刪除命令時執(zhí)行步驟S9,當所述命令為其它命令時根據(jù)所述命令執(zhí)行相應(yīng)操作:
步驟S1:判斷應(yīng)用程序管理集中是否有與所述第一刪除命令的數(shù)據(jù)域相對應(yīng)的應(yīng)用標識符,是則執(zhí)行步驟S2,否則執(zhí)行步驟S5;
步驟S2:判斷所述應(yīng)用標識符對應(yīng)的應(yīng)用程序是否滿足刪除條件,是則將垃圾回收標志位置為有效執(zhí)行步驟S3,否則執(zhí)行步驟S12;
步驟S3:查找所述應(yīng)用程序的對象、子孫對象,以及查找所述應(yīng)用程序的應(yīng)用標識符的對象、子孫對象,回收所述應(yīng)用程序的對象、子孫對象以及所述應(yīng)用標識符的對象、子孫對象在Java卡存儲區(qū)域中占用的空間,回收所述應(yīng)用程序的對象、子孫對象以及所述應(yīng)用標識符的對象、子孫對象的對象索引值在對象管理表中占用的空間;
步驟S4:若所述步驟S3中的操作成功完成,則將所述垃圾回收標志位置為無效,執(zhí)行步驟S12,若在所述Java卡虛擬機在執(zhí)行上述操作過程中掉電,則重新上電后執(zhí)行步驟S12;
步驟S5:判斷包管理集中是否有與所述第一刪除命令的數(shù)據(jù)域相對應(yīng)的應(yīng)用標識符,是則執(zhí)行步驟S6,否則執(zhí)行步驟S12;
步驟S6:判斷所述應(yīng)用標識符對應(yīng)的包是否包含應(yīng)用程序,是則執(zhí)行步驟S12,否則將所述垃圾回收標志位置為有效,執(zhí)行步驟S7;
步驟S7:查找所述包的對象、子孫對象,回收所述包的對象、子孫對象在所述Java卡存儲區(qū)域中占用的空間,回收所述包的對象、子孫對象的對象索引值在所述對象管理表中占用的空間;
步驟S8:若所述步驟S7中的操作成功完成,則將所述垃圾回收標志位置為無效,執(zhí)行步驟S12,若在所述Java卡虛擬機在執(zhí)行上述操作過程中掉電,則重新上電后執(zhí)行步驟S12;
步驟S9:判斷所述包包含的應(yīng)用程序是否滿足刪除條件,是則將垃圾回收標志位置為有效,執(zhí)行步驟S10,否則執(zhí)行步驟S12;
步驟S10:查找所述包包含的應(yīng)用程序的對象、子孫對象,以及查找所述包的應(yīng)用標識符的對象、子孫對象,回收所述應(yīng)用程序的對象、子孫對象以及所述應(yīng)用標識符的對象、子孫對象在所述Java卡存儲區(qū)域中占用的空間,回收所述應(yīng)用程序的對象、子孫對象以及所述應(yīng)用標識符的對象、子孫對象的對象索引值在所述對象管理表中占用的空間,查找所述包的對象、子孫對象,回收所述包的對象、子孫對象在所述Java卡存儲區(qū)域中占用的空間,回收所述包的對象、子孫對象的對象索引值在所述對象管理表中占用的空間,回收所述應(yīng)用標識符在所述包管理集中占用的空間;
步驟S11:若所述步驟S10中的操作成功完成,則將所述垃圾回收標志位置為無效,執(zhí)行步驟S12,若在所述Java卡虛擬機在執(zhí)行上述操作過程中掉電,則重新上電后執(zhí)行步驟S12;
步驟S12:判斷所述垃圾回收標志位是否有效,是則執(zhí)行垃圾回收操作,否則所述Java卡虛擬機等待接收命令,且在接收到命令后對所述命令進行解析以及根據(jù)所述命令執(zhí)行相應(yīng)操作。
當所述Java卡虛擬機首次上電時,判斷所述垃圾回收標志位是否有效,是則執(zhí)行垃圾回收操作,否則所述Java卡虛擬機等待接收命令,且在接收到命令后對所述命令進行解析以及根據(jù)所述命令執(zhí)行相應(yīng)操作。
當垃圾回收開始接口被調(diào)用時,所述Java卡虛擬機將所述垃圾回收標志位置為有效。
所述對所述命令進行解析具體包括:
該專利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專利權(quán)人授權(quán)。該專利全部權(quán)利屬于飛天誠信科技股份有限公司,未經(jīng)飛天誠信科技股份有限公司許可,擅自商用是侵權(quán)行為。如果您想購買此專利、獲得商業(yè)授權(quán)和技術(shù)合作,請聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/201110439970.8/2.html,轉(zhuǎn)載請聲明來源鉆瓜專利網(wǎng)。





