欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java中覆蓋finalize()方法實例代碼

 更新時間:2018年02月11日 08:43:41   作者:Alioo-壞人  
這篇文章主要介紹了Java中覆蓋finalize()方法實例代碼,分享了相關(guān)代碼示例,小編覺得還是挺不錯的,具有一定借鑒價值,需要的朋友可以參考下

本文研究的主要是Java中關(guān)于覆蓋finalize()方法的一次嘗試,具體實現(xiàn)如下。

測試代碼

package com.alioo.gc;

/**
 * 執(zhí)行結(jié)果:
 *
 */
public class FinalizeEscapeGC{
  public static FinalizeEscapeGC instance=null;
  public void isAlive(){
    System.out.println("yes,i am still alive");
  }
  @Override
  protected void finalize() throws Throwable {
    super.finalize();
    System.out.println("finalize methode executed");
    instance=this;
  }

  public static void main(String [] args) throws InterruptedException {
    instance=new FinalizeEscapeGC();

    instance=null;
    System.gc();
    Thread.sleep(1000);
    instance.isAlive(); //在沒有重寫finalize方法時,肯定是會報nullpointerException的

    instance=null;
    System.gc();
    Thread.sleep(1000);
    instance.isAlive();
  }
}

執(zhí)行結(jié)果:

finalize methode executed
yes,i am still alive
Exception in thread "main" java.lang.NullPointerException
at com.alioo.gc.FinalizeEscapeGC.main(FinalizeEscapeGC.java:29)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)

解釋說明:

先執(zhí)行 instance=null;后執(zhí)行instance.isAlive(); 在沒有重寫finalize方法時,肯定是會報nullpointerException的,
但是實際執(zhí)行結(jié)果是一次逃脫成功,一次失敗,這是因為任何一個對象的finalize()方法都只會被系統(tǒng)自動調(diào)用一次,如果對象面臨下一次回收,它的finalize()方法就不會再次執(zhí)行

總結(jié)

這個拯救對象的方式帶有極大的不確定性,建議大家不用使用它,忘掉這個方法的存在。

以上就是本文關(guān)于Java中覆蓋finalize()方法實例代碼的全部內(nèi)容,希望對大家有所幫助。感興趣的朋友可以繼續(xù)參閱本站其他相關(guān)專題,如有不足之處,歡迎留言指出。感謝朋友們對本站的支持!

相關(guān)文章

  • Java實現(xiàn)快速冪算法詳解

    Java實現(xiàn)快速冪算法詳解

    快速冪是用來解決求冪運算的高效方式。此算法偶爾會出現(xiàn)在筆試以及面試中,特意花時間研究了下這題,感興趣的小伙伴快跟隨小編一起學(xué)習(xí)一下
    2022-10-10
  • IDEA源碼修改器JarEditor使用(反編譯-打包一步到位)

    IDEA源碼修改器JarEditor使用(反編譯-打包一步到位)

    JarEditor是一個IDEA插件,用于修改jar包中的類文件,它允許用戶在不解壓jar包的情況下,直接在IDEA中編輯和修改類文件的源碼,修改完成后,可以一鍵編譯并生成新的jar包,替換原jar包
    2025-01-01
  • Java ProcessBuilder執(zhí)行多次CMD命令的使用

    Java ProcessBuilder執(zhí)行多次CMD命令的使用

    本文介紹了Java的ProcessBuilder類,該類用于執(zhí)行外部命令,通過ProcessBuilder,我們可以在Java程序中靈活地執(zhí)行多次CMD命令,并控制輸入輸出流以及工作目錄等,感興趣的可以了解一下
    2024-11-11
  • MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法

    MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法

    這篇文章主要介紹了MyBatis入門之增刪改查+數(shù)據(jù)庫字段和實體字段不一致問題處理方法,需要的朋友可以參考下
    2017-05-05
  • Java實現(xiàn)用戶短信驗證碼登錄功能實例代碼

    Java實現(xiàn)用戶短信驗證碼登錄功能實例代碼

    現(xiàn)在不管是各類的網(wǎng)站,還是大小社交app,登錄方式是越來越多了,但是大部分還是以短信登錄為主,本文主要介紹了java短信驗證碼登錄功能設(shè)計與實現(xiàn),感興趣的可以了解一下
    2021-11-11
  • 使用aop實現(xiàn)全局異常處理

    使用aop實現(xiàn)全局異常處理

    這篇文章主要為大家詳細(xì)介紹了使用aop實現(xiàn)全局異常處理,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-07-07
  • 親手帶你解決Debug Fastjson的安全漏洞

    親手帶你解決Debug Fastjson的安全漏洞

    這篇文章主要介紹了親手帶你解決Debug Fastjson的安全漏洞,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-06-06
  • Java基本知識點之變量和數(shù)據(jù)類型

    Java基本知識點之變量和數(shù)據(jù)類型

    這篇文章主要給大家介紹了關(guān)于Java基本知識點之變量和數(shù)據(jù)類型的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • Java源文件命名規(guī)則詳解

    Java源文件命名規(guī)則詳解

    這篇文章主要介紹了Java源文件命名規(guī)則,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2024-03-03
  • Java判斷兩個日期相差天數(shù)的方法

    Java判斷兩個日期相差天數(shù)的方法

    這篇文章主要介紹了Java判斷兩個日期相差天數(shù)的方法,以實例形式對比分析了java進(jìn)行日期換算及對比的相關(guān)技巧,具有一定參考借鑒價值,需要的朋友可以參考下
    2015-10-10

最新評論