亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        綜述java運(yùn)行中垃圾回收機(jī)制

        2017-04-08 18:52:14張衛(wèi)
        關(guān)鍵詞:程序

        張衛(wèi)

        摘要:java語言作為一中優(yōu)秀的編程語言,其優(yōu)秀之因素一個(gè)比較重要的方面就是具有自動(dòng)垃圾回收機(jī)制,垃圾回收可以減少程序員的工作量,提升程序的執(zhí)行效率。本文對垃圾回收機(jī)制做了研究說明。

        關(guān)鍵詞:GC;垃圾回收機(jī)制;java;jvm;程序

        中圖分類號(hào):TP312 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1007-9416(2017)02-0231-01

        Java語言由于其良好的跨平臺(tái)性而得到廣泛應(yīng)用,作為C++的改良語言,java增加了垃圾回收機(jī)制,從而避免了C++運(yùn)行時(shí)由于忘記釋放對象而帶來的內(nèi)存泄漏問題。Java中,運(yùn)行需要的對象名稱存放在棧中,而該對象實(shí)例化后的數(shù)據(jù)保存在堆中,如果一個(gè)棧中的對象不再指向原來堆中的數(shù)據(jù)時(shí),則這個(gè)對象所占用的內(nèi)存空間就是一個(gè)垃圾,Java運(yùn)行環(huán)境中JVM的一個(gè)系統(tǒng)線程能及時(shí)釋放一些無用信息。Java代碼執(zhí)行順序如圖1所示。

        從中可知垃圾回收是在一個(gè)程序運(yùn)行塊的最后一個(gè)環(huán)節(jié)(實(shí)際執(zhí)行過程中這個(gè)過程是循環(huán)的,垃圾回收時(shí)間是由算法加權(quán)得到不可預(yù)測)。它是一個(gè)動(dòng)態(tài)存儲(chǔ)管理技術(shù),自動(dòng)釋放不再被引用的對象,這個(gè)釋放的過程按照一定的算法來實(shí)現(xiàn)。在java中沒有c++中的delete命令但是其中系統(tǒng)提供了gc方法回收垃圾。下面對GC機(jī)制下的gc方法進(jìn)行測試:

        1 測試代碼

        測試代碼如圖2所示。

        2 測試環(huán)境

        測試環(huán)境是在安裝jdk和jre的電腦上,通過控制臺(tái)調(diào)用javac編譯器編譯生成類文件,然后調(diào)用java命令執(zhí)行該類文件,在后面配置-verbosegc參數(shù)可以查看程序使用堆內(nèi)存的情況,如圖3所示。

        3 測試結(jié)果

        從測試結(jié)果截圖中可以看到系統(tǒng)共收回848-617=231K的空間,括號(hào)里面的125952K表示堆內(nèi)存總?cè)萘?,共使用?.0105963秒。

        上面測試中使用了系統(tǒng)gc方法回收垃圾,但是為了減少使用GC而導(dǎo)致的間歇性停頓,盡量不要顯式調(diào)用系統(tǒng)gc方法。系統(tǒng)GC的觸發(fā)條件是應(yīng)用程序空閑時(shí),或者java堆內(nèi)存不足時(shí),前者是為了不占用系統(tǒng)后期程序運(yùn)行時(shí)間而設(shè)置的優(yōu)化,而后者是強(qiáng)制調(diào)用,出現(xiàn)堆內(nèi)存不足時(shí)系統(tǒng)會(huì)回收內(nèi)存用于重新分配,如果內(nèi)存還是不夠的情況下,系統(tǒng)會(huì)再進(jìn)行兩次GC調(diào)用,如果還是無法滿足條件,就會(huì)報(bào)出內(nèi)存溢出的錯(cuò)誤。

        GC在進(jìn)行垃圾回收時(shí),會(huì)首先調(diào)用finalize函數(shù),這個(gè)函數(shù)的作用是釋放一些其他做法開辟的內(nèi)存空間,由于java垃圾回收器默認(rèn)只知道回收由new方法分配的內(nèi)存空間,而一些如調(diào)用c語言malloc函數(shù)分配的空間或者打開的文件資源等,java垃圾回收機(jī)制不會(huì)主動(dòng)收回,這時(shí)候可以在finalize方法中出一些清理工作,需要對該函數(shù)的一個(gè)重寫工作,在重寫的過程中可以對特殊空間進(jìn)行一些處理。

        在垃圾回收機(jī)制中,垃圾是要按照一定的算法回收的,通常提供的算法有以下幾種:

        (1)增量收集法(Incremental Collecting)。增量收集法是在應(yīng)用運(yùn)行的時(shí)候運(yùn)行算法進(jìn)行垃圾回收,但是在JDK5以后不再使用該算法,此處不敘。

        (2)引用計(jì)數(shù)法(Reference Counting)。這是一種比較傳統(tǒng)的垃圾回收算法,在某個(gè)對象被使用的時(shí)候,讓引用計(jì)數(shù)加1,刪除某個(gè)對象的引用后,就讓引用計(jì)數(shù)減1,如此在一個(gè)對象正常引用結(jié)束的時(shí)候,引用計(jì)數(shù)為0,在GC回收內(nèi)存的時(shí)候,只用手機(jī)引用計(jì)數(shù)為0的對象。但是這個(gè)算法無法解決對象的循環(huán)引用。

        4 結(jié)語

        垃圾回收機(jī)制給程序員的開發(fā)帶來了極大的便利,垃圾回收能自動(dòng)釋放內(nèi)存空間,減輕編程的負(fù)擔(dān)。這使Java 虛擬機(jī)具有一些優(yōu)點(diǎn)。首先在編程效率方面,垃圾回收機(jī)制幫助程序員解決了很多難懂的存儲(chǔ)器問題,同時(shí)垃圾回收機(jī)制提升程序的安全性,保護(hù)程序的完整。

        猜你喜歡
        程序
        給Windows添加程序快速切換欄
        電腦愛好者(2020年6期)2020-05-26 09:27:33
        試論我國未決羈押程序的立法完善
        失能的信仰——走向衰亡的民事訴訟程序
        “程序猿”的生活什么樣
        英國與歐盟正式啟動(dòng)“離婚”程序程序
        基于VMM的程序行為異常檢測
        偵查實(shí)驗(yàn)批準(zhǔn)程序初探
        我國刑事速裁程序的構(gòu)建
        創(chuàng)衛(wèi)暗訪程序有待改進(jìn)
        恐怖犯罪刑事訴訟程序的完善
        亚洲人成人影院在线观看| 在线涩涩免费观看国产精品| 免费无码又爽又刺激网站| 国产av一区二区三区区别| 羞涩色进入亚洲一区二区av| 午夜天堂一区人妻| 亚洲av日韩专区在线观看| 国产成人综合久久久久久| 中文字幕一区二区区免| 国产精品一区二区日本| 久久久久人妻精品一区蜜桃 | 午夜一区二区三区免费观看| 国产日产精品_国产精品毛片| 真人直播 免费视频| 久9热免费精品视频在线观看| 国产在线观看女主播户外| 久久久亚洲欧洲日产国码aⅴ| 无码人妻精品一区二区三区免费| 尤物蜜芽福利国产污在线观看| 熟女免费视频一区二区| 乱码丰满人妻一二三区| 久久艹影院| 中文在线最新版天堂av | 无码国内精品久久人妻| 亚洲人成网站77777在线观看 | 国内少妇人妻丰满av| 日本变态网址中国字幕| 日本熟女中文字幕在线| 女人下面毛多水多视频| 最新国产成人在线网站| 亚洲成a人一区二区三区久久| 乱码丰满人妻一二三区| 草莓视频一区二区精品| 在线观看免费的黄片小视频| 少妇被又大又粗又爽毛片 | 久久精品国产清自在天天线| 久久人人97超碰超国产| av永远在线免费观看| 中文无码av一区二区三区| 亚洲学生妹高清av| 杨幂国产精品一区二区|