成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專(zhuān)欄INFORMATION COLUMN

3.java類(lèi)和對(duì)象

liuhh / 2414人閱讀

摘要:析構(gòu)函數(shù)對(duì)象也有類(lèi)似析構(gòu)函數(shù)的功能,如果想要在垃圾回收的時(shí)候?qū)δ硞€(gè)對(duì)象進(jìn)行一些收尾工作,可以重寫(xiě)類(lèi)的方法。示例對(duì)象構(gòu)造函數(shù)對(duì)象析構(gòu)函數(shù)會(huì)產(chǎn)生垃圾手工處理垃圾收集輸出結(jié)果對(duì)象構(gòu)造函數(shù)對(duì)象析構(gòu)函數(shù)可以看到異常信息并未輸出。

關(guān)于類(lèi)和對(duì)象的詳解可以參考:https://blog.csdn.net/wei_zhi...

本文主要記錄下類(lèi)對(duì)象的初始化順序、finalize函數(shù)以及對(duì)象克隆。

類(lèi)對(duì)象初始化順序

父類(lèi)靜態(tài)屬性變量初始化

父類(lèi)靜態(tài)代碼塊

子類(lèi)靜態(tài)屬性變量初始化

子類(lèi)靜態(tài)代碼塊

父類(lèi)普通屬性變量初始化

父類(lèi)構(gòu)造代碼塊

父類(lèi)構(gòu)造函數(shù)

子類(lèi)普通屬性變量初始化

子類(lèi)構(gòu)造代碼塊

子類(lèi)構(gòu)造函數(shù)

通過(guò)結(jié)論我們可以很明顯的看出:static字段、代碼塊的執(zhí)行順序優(yōu)先于非static字段、代碼塊。這是因?yàn)樵陟o態(tài)域是屬于類(lèi)的,在類(lèi)加載后就一直存在;而普通域需要?jiǎng)?chuàng)建對(duì)象才能訪(fǎng)問(wèn)。而在創(chuàng)建對(duì)象時(shí),需要先加載父類(lèi),然后再加載子類(lèi),因此父類(lèi)的靜態(tài)字段初始化和靜態(tài)代碼塊執(zhí)行先于子類(lèi)。

finalize 析構(gòu)函數(shù)

java對(duì)象也有類(lèi)似析構(gòu)函數(shù)的功能,如果想要在垃圾回收的時(shí)候?qū)δ硞€(gè)對(duì)象進(jìn)行一些收尾工作,可以重寫(xiě)Object類(lèi)的finalize()方法。
定義如下:

protected void finalize() throws Throwable

在對(duì)象回收時(shí),即使拋出了異常,也不會(huì)影響程序的正常運(yùn)行。

示例:

class Demo {
    public Demo(){
        System.out.println("對(duì)象構(gòu)造函數(shù)");
    }
    @Override
    protected void finalize() throws Throwable{
        System.out.println("對(duì)象析構(gòu)函數(shù)");
    }
}
public class testDemo {
    public static void main(String[] args) throws Exception {
        Demo demo = new Demo();
        demo = null; //會(huì)產(chǎn)生垃圾
        System.gc(); //手工處理垃圾收集
    }
}
輸出結(jié)果:
對(duì)象構(gòu)造函數(shù)
對(duì)象析構(gòu)函數(shù)

可以看到異常信息并未輸出。

final、finally、finalize的區(qū)別

final:關(guān)鍵字,其修飾的類(lèi)不能被繼承,方法不能被重寫(xiě)、常量;

finally: 關(guān)鍵字,異常的統(tǒng)一出口;

finalize:Object類(lèi)的方法,析構(gòu)函數(shù);

對(duì)象克隆

對(duì)象克隆指的是對(duì)象的復(fù)制操作,在Object類(lèi)里提供有一個(gè)專(zhuān)門(mén)的克隆方法:

protected Object clone() throws CloneNotSupportedException

如果要使用的對(duì)象不支持Cloneable接口,調(diào)用該方法就會(huì)拋出異常。

示例:

class Book implements Cloneable { //此類(lèi)的對(duì)象可以被克隆
    private String title;
    private double price;
    
    public Book(String title, double price){
        this.title = title;
        this.price = price;
    }
    @Override
    public String toString(){
        return "書(shū)名:" + this.title + "價(jià)格:" + this.price;
    }

    //由于此類(lèi)需要對(duì)象克隆操作,需要進(jìn)行對(duì)象方法的重寫(xiě)
    @Override
    public Object clone() throws CloneNotSupportedException{
        return super.clone();
    }
    
}
public class testDemo {
    public static void main(String[] args) throws Exception {
      Book bookA = new Book("java開(kāi)發(fā)", 79.8);
      Book bookB = (Book)bookA.clone();

      System.out.println(bookA);
      System.out.println(bookB);

      System.out.println(System.identityHashCode(bookA));
      System.out.println(System.identityHashCode(bookB));
    }
}
輸出結(jié)果:
書(shū)名:java開(kāi)發(fā)價(jià)格:79.8
書(shū)名:java開(kāi)發(fā)價(jià)格:79.8
*****
366712642
1829164700

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/73443.html

相關(guān)文章

  • JavaOOP:類(lèi)和對(duì)象

    摘要:中類(lèi)的概念及類(lèi)與對(duì)象的關(guān)系什么是類(lèi)從語(yǔ)義上理解,類(lèi)就是用于創(chuàng)建對(duì)象的模版,是一個(gè)抽象的概念從語(yǔ)法上理解,類(lèi)就是我們指定的一種數(shù)據(jù)類(lèi)型類(lèi)和對(duì)象的關(guān)系語(yǔ)義上,類(lèi)是創(chuàng)建對(duì)象的模版,對(duì)象是類(lèi)的實(shí)例語(yǔ)法上,類(lèi)是自定義數(shù)據(jù)類(lèi)型,對(duì)象是這種類(lèi)型的變量創(chuàng)建 1、Java中類(lèi)的概念及類(lèi)與對(duì)象的關(guān)系 什么是類(lèi)? 從語(yǔ)義上理解,類(lèi)就是用于創(chuàng)建對(duì)象的模版,是一個(gè)抽象的概念;從語(yǔ)法上理解,類(lèi)就是我們指定的一...

    whatsns 評(píng)論0 收藏0
  • Java問(wèn)題匯總,持續(xù)更新到GitHub

    摘要:目錄介紹問(wèn)題匯總具體問(wèn)題好消息博客筆記大匯總年月到至今,包括基礎(chǔ)及深入知識(shí)點(diǎn),技術(shù)博客,學(xué)習(xí)筆記等等,還包括平時(shí)開(kāi)發(fā)中遇到的匯總,當(dāng)然也在工作之余收集了大量的面試題,長(zhǎng)期更新維護(hù)并且修正,持續(xù)完善開(kāi)源的文件是格式的同時(shí)也開(kāi)源了生活博客,從年 目錄介紹 00.Java問(wèn)題匯總 01.具體問(wèn)題 好消息 博客筆記大匯總【16年3月到至今】,包括Java基礎(chǔ)及深入知識(shí)點(diǎn),Android技...

    beita 評(píng)論0 收藏0
  • 假如我是面試官,我會(huì)這樣虐你

    摘要:又是金三銀四的時(shí)候,我希望這份面試題能夠祝你一臂之力自我和項(xiàng)目相關(guān)自我介紹你覺(jué)得自己的優(yōu)點(diǎn)是你覺(jué)得自己有啥缺點(diǎn)你有哪些你為什么要離開(kāi)上家公司你上家公司在,我們公司在,離這么遠(yuǎn)為什么要選擇我們這里上家公司的同事和領(lǐng)導(dǎo)是怎么評(píng)價(jià)你的介紹下你的上 又是金三銀四的時(shí)候,我希望這份面試題能夠祝你一臂之力! 自我和項(xiàng)目相關(guān) 1、自我介紹 2、你覺(jué)得自己的優(yōu)點(diǎn)是?你覺(jué)得自己有啥缺點(diǎn)? 3、你有哪些 ...

    Benedict Evans 評(píng)論0 收藏0
  • “大話(huà)”設(shè)計(jì)模式

    摘要:抽象工廠(chǎng)模式是為了處理對(duì)象具有等級(jí)結(jié)構(gòu)以及對(duì)象族的問(wèn)題。單例設(shè)計(jì)模式單例模式確保某一個(gè)類(lèi)只有一個(gè)實(shí)例,而且自行實(shí)例化并向整個(gè)系統(tǒng)提供這個(gè)實(shí)例,這個(gè)類(lèi)成為單例類(lèi)。 導(dǎo)語(yǔ):設(shè)計(jì)模式是無(wú)數(shù)碼農(nóng)前人在實(shí)際的生產(chǎn)項(xiàng)目中經(jīng)過(guò)不斷的踩坑、爬坑、修坑的經(jīng)歷總結(jié)出來(lái)的經(jīng)驗(yàn)教訓(xùn),經(jīng)過(guò)抽象之后表達(dá)成的概念。能夠幫助后來(lái)的設(shè)計(jì)者避免重復(fù)同樣的錯(cuò)誤或者彎路。我也抽空整理了一下設(shè)計(jì)模式,用自己的話(huà)總結(jié)了一下,自認(rèn)...

    coordinate35 評(píng)論0 收藏0
  • 3-文件組織

    摘要:文件組織一個(gè)文件由應(yīng)以空行分隔的部分和標(biāo)識(shí)每個(gè)部分的可選注釋組成。一個(gè)文件超過(guò)行的代碼會(huì)顯得很麻煩,應(yīng)該避免出現(xiàn)這樣情況。源代碼文件每個(gè)源文件包含一個(gè)單獨(dú)的公開(kāi)類(lèi)或者接口。構(gòu)造函數(shù)方法這些方法應(yīng)該按照功能而不是范圍或可訪(fǎng)問(wèn)性進(jìn)行分組。 3-文件組織 一個(gè)文件由應(yīng)以空行分隔的部分和標(biāo)識(shí)每個(gè)部分的可選注釋組成。 一個(gè)文件超過(guò)2000行的代碼會(huì)顯得很麻煩,應(yīng)該避免出現(xiàn)這樣情況。 3.1 ja...

    Miracle_lihb 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

liuhh

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<