欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

如何解析關(guān)于Java垃圾回收的問(wèn)題

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何解析關(guān)于Java垃圾回收的問(wèn)題,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

創(chuàng)新互聯(lián)是一家專業(yè)提供萬(wàn)全企業(yè)網(wǎng)站建設(shè),專注與成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、H5網(wǎng)站設(shè)計(jì)、小程序制作等業(yè)務(wù)。10年已為萬(wàn)全眾多企業(yè)、政府機(jī)構(gòu)等服務(wù)。創(chuàng)新互聯(lián)專業(yè)網(wǎng)站設(shè)計(jì)公司優(yōu)惠進(jìn)行中。

Java垃圾回收器只知道釋放那些經(jīng)由new分配的內(nèi)存,所以它不知道該如何釋放該對(duì)象的這塊"特殊"內(nèi)存.為了應(yīng)對(duì)這種情況,Java允許在類中定義一個(gè)名為finalize()的方法.它的工作原理"假定"是這樣的:一旦Java垃圾回收器準(zhǔn)備好釋放對(duì)象占用的存儲(chǔ)空間,將首先調(diào)用其finalize()方法.并且在下一次垃圾回收動(dòng)作發(fā)生時(shí),才會(huì)真正回收對(duì)象占用的內(nèi)存.所以要是你打算用finalize(),就能在垃圾回收時(shí)刻做一些重要的清理工作.也許你會(huì)發(fā)現(xiàn),只要程序沒有瀕臨豐儲(chǔ)空間用完的那一刻,對(duì)象占用的空間就總也得不到釋放,如果程序執(zhí)行結(jié)束,并且垃圾回收器一直沒有釋放你創(chuàng)建的任何對(duì)象的存儲(chǔ)空間,則隨著程序的退出,那些資源也會(huì)全部交還給操作系統(tǒng).

這個(gè)策略是恰當(dāng)?shù)?因?yàn)槔厥毡旧硪灿虚_銷,要是不使用它,那就不用支付這部分開銷.所以你根本沒有辦法知道垃圾回收器會(huì)不會(huì)執(zhí)行,什么時(shí)候執(zhí)行.你要回收的對(duì)象不一定會(huì)被回收.finalize()方法用于清理什么樣的對(duì)象?如果我要清理某個(gè)對(duì)象,而該對(duì)象中含有其它對(duì)象,finalize()就應(yīng)該明確釋放那些對(duì)象呢?

不----無(wú)論對(duì)象是如何創(chuàng)建的,Java垃圾回收器都會(huì)負(fù)責(zé)釋放對(duì)象占據(jù)的所有內(nèi)存.這就將對(duì)finalize()的需求限制到一種特殊情況,即通過(guò)某種創(chuàng)建對(duì)象方式以外的方式為對(duì)象分配存儲(chǔ)空間.不過(guò),大家也看到,Java中一切皆為對(duì)象,那這種特殊情況是怎么回事?看來(lái)之所以要有finalize(),是由于在分配內(nèi)存時(shí)可能采用了類似C語(yǔ)言中的做法.而非Java中的通常做法.

這種情況主要發(fā)生在使用"本地方法"的情況下,本地方法是一種在Java中調(diào)用非Java代碼的方式.本地方法目前只支持C和C++,但它們可以調(diào)用其他語(yǔ)言寫的代碼,所以實(shí)際上可以調(diào)用任何代碼.在非Java代碼中,也許會(huì)調(diào)用C的malloc()函數(shù)系列來(lái)分配存儲(chǔ)空間,而且除非調(diào)用了free()函數(shù),否則存儲(chǔ)空間將得不到釋放,從而造成內(nèi)存泄露.當(dāng)然,free()是C和C++中的函數(shù),所以要在finalize()中用本地方法調(diào)用它.至此,大家或許明白了不要過(guò)多地使用finalize()的道理了.System.gc(),強(qiáng)行運(yùn)行垃圾回收器.

finalize()在什么時(shí)候被調(diào)用?有三種情況1.對(duì)象被Garbage Collection時(shí)自動(dòng)調(diào)用,比如運(yùn)行System.gc()的時(shí)候.2.程序退出時(shí)為每個(gè)對(duì)象調(diào)用一次finalize方法。3.顯式的調(diào)用finalize方法

除此以外,正常情況下,當(dāng)某個(gè)對(duì)象被系統(tǒng)收集為無(wú)用信息的時(shí)候,finalize()將被自動(dòng)調(diào)用,但是jvm不保證finalize()一定被調(diào)用,也就是說(shuō),finalize()的調(diào)用是不確定的,這也就是為什么sun不提倡使用finalize()的原因.

測(cè)試代碼 package test;  

/**      * 測(cè)試?yán)厥掌髋cfinalize()方法      * @author Administrator      */     public class GcTest {        public static void main(String[] args) {             Book b1 = new Book();             b1.setName("new");                     Book b2 = new Book();             b2.setName("old");                     /*              * 把b2引用指向null.讓b2引用所指的Book對(duì)象不在有引用指向它.              * 垃圾回收器運(yùn)行時(shí),讓對(duì)象回收掉.              */             b2 = null;                   /*              * 強(qiáng)行運(yùn)行垃圾回收器.              */             System.gc();         }     }         class Book{                private String name;                  public String getName() {             return name;         }                public void setName(String name) {             this.name = name;         }                @Override         protected void finalize() throws Throwable {             // TODO Auto-generated method stub             super.finalize();             System.out.println(getName()+"--->執(zhí)行GC工作.");         }     }    package test;  /**   * 測(cè)試?yán)厥掌髋cfinalize()方法   * @author Administrator   */  public class GcTest {      public static void main(String[] args) {    Book b1 = new Book();    b1.setName("new");     Book b2 = new Book();    b2.setName("old");      /*     * 把b2引用指向null.讓b2引用所指的Book對(duì)象不在有引用指向它.     * 垃圾回收器運(yùn)行時(shí),讓對(duì)象回收掉.     */    b2 = null;      /*     * 強(qiáng)行運(yùn)行垃圾回收器.     */    System.gc();   }  }   class Book{    private String name;   public String getName() {    return name;   }   public void setName(String name) {    this.name = name;   }   @Override   protected void finalize() throws Throwable {    // TODO Auto-generated method stub    super.finalize();    System.out.println(getName()+"--->執(zhí)行GC工作.");   }  }

結(jié)果代碼

old--->執(zhí)行GC工作. 

上述就是小編為大家分享的如何解析關(guān)于Java垃圾回收的問(wèn)題了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

網(wǎng)頁(yè)名稱:如何解析關(guān)于Java垃圾回收的問(wèn)題
分享鏈接:http://aaarwkj.com/article34/jeehse.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供響應(yīng)式網(wǎng)站、ChatGPT、微信公眾號(hào)微信小程序、網(wǎng)頁(yè)設(shè)計(jì)公司網(wǎng)站導(dǎo)航

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)
少妇毛片一区二区三区| 国产成人激情自拍视频在线观看| 加勒比久久精品网址系列| 白浆熟女精品国产91| 日本精品专区在线观看| av在线高清免费观看| 国产精品久久久在线视频| 国产在线91精品入口| 欧美丝袜熟女日韩亚洲| 国产亚洲理论片在线观看| 欧美大片免费高清观看| av剧情网址在线观看| 日本熟熟妇丰满人妻啪啪| 久久中文字幕一区二区三区| 美女丝袜诱惑国产91| 亚洲国产熟女一区二区三| 精品中文字幕欧美区一区| 天天操天天干夜夜骑| 精品一区2区3区4区| 国产三级国产精品国产| 麻豆午夜视频免费在线观看| 亚洲欧美另类国产一区| 日韩精品少妇一区二区在线看 | 性色视频一区二区三区| 欧美在线观看香蕉视频| 日韩精品在线观看一| 日韩视频精品推荐一区二区| 丁香婷婷深情五月亚洲天堂| 在线国产一区二区不卡| 日本高清不卡在线观看| 亚洲欧美日韩另类精品一区二区三区| 国产a天堂一区二区专区| 亚洲国产a级一区二区| 精品人妻少妇av一区二区| 成人午夜欧美熟妇小视频| 色综合色综合蘑菇在线| 十八禁网站免费在线播放| 久久久久久狠狠亚洲综合| 亚洲夫妻性生活免费视频| 免费国产午夜福利在线| 日韩精品在线观看不卡|