day01

初始化與清理

  1. 創(chuàng)建一個(gè)類,它包含一個(gè)在定義時(shí)就被初始化了的String域,以及另一個(gè)通過構(gòu)造器初始化的String域.這兩種方式有何差異?

<個(gè)人認(rèn)為就是一個(gè)定義時(shí)就初始化的String域就是在類中添加一個(gè)Static的變量 而通過構(gòu)造器初始化的String是通過傳參或者就是在類中定義一個(gè)String>

class Rock{
    Rock(){
        //第一種情況就是定義一個(gè)String
        String a = "1234";//此時(shí)需要new一個(gè)Rock才會(huì)有a 的初始化
        //第二種情況就是static
        static String a = "1234";//只要用到關(guān)于Rock這個(gè)應(yīng)用或者對(duì)象就會(huì)初始化這個(gè)a
        System.out.pritnln("Rock ");
    }
}
public class SimpleConstructor{
    public static void main(String[] args){
        new Rock();
    }
}
  1. 區(qū)分重載方法:每個(gè)重載的方法都必須有一個(gè)獨(dú)一無二的參數(shù)類型列表

注意:甚至參數(shù)順序的不同也足以區(qū)分兩個(gè)方法。不過,一般情況下別這樣做,因?yàn)檫@會(huì)使代碼難以維護(hù)。通過返回值來區(qū)分重載方法是行不通的。

  1. static 是靜態(tài)方法,盡量用類名來調(diào)用,類似于全局變量。它沒有this方法
  2. 清理:終結(jié)處理和垃圾回收
    1. 對(duì)象<b>可能</b>不被垃圾回收
    2. 垃圾回收并不等于“析構(gòu)”
    3. 垃圾回收只與內(nèi)存有關(guān)//也就是說,使用垃圾回收器的唯一原因是為了回收程序不再使用的內(nèi)存。
  3. 記住,無論是“垃圾回收”還是“終結(jié)”,都不保證一定會(huì)發(fā)生。如果java虛擬機(jī)JVM 并未面臨內(nèi)存耗盡的情形,他是不會(huì)浪費(fèi)時(shí)間去執(zhí)行垃圾回收以恢復(fù)內(nèi)存的。
  4. 垃圾回收器如何工作

Java虛擬機(jī)會(huì)進(jìn)行見識(shí),如果所有對(duì)象都很穩(wěn)定,垃圾回收器的效率降低的話,就會(huì)切換到“標(biāo)記-清理”方式;同樣,Java虛擬機(jī)會(huì)跟蹤“標(biāo)記-清掃”的效果,要是堆空間出現(xiàn)很多碎片,就會(huì)切換回“停止-復(fù)制”方式。這就是自適應(yīng)技術(shù)。

  1. 初始化順序是先靜態(tài)對(duì)象(如果它們尚未因前面的對(duì)象創(chuàng)建過程而被初始化),而后是“非靜態(tài)”對(duì)象。從輸出結(jié)果中可以觀察到這一點(diǎn)。在初始化一個(gè)類時(shí)先初始化構(gòu)造器外的靜態(tài)函數(shù)然后初始化非靜態(tài)的函數(shù),不管是在構(gòu)造器前還是在后。
  2. 總結(jié)一下對(duì)象創(chuàng)建過程
    假設(shè)有名為Dog的類
    1. 即使沒有顯示地使用static關(guān)鍵字,構(gòu)造器實(shí)際上也是靜態(tài)方法。因此當(dāng)首次創(chuàng)建類型為Dog的對(duì)象時(shí)(構(gòu)造器可以看成靜態(tài)方法),或者Dog類的靜態(tài)方法/靜態(tài)域首次被訪問時(shí)Java解釋器必須查找類路徑,以定位Dog.class文件
    2. 然后載入Dog.class(后面會(huì)學(xué)到,浙江創(chuàng)建一個(gè)Class對(duì)象),有關(guān)靜態(tài)初始化的所有動(dòng)作都會(huì)執(zhí)行.因此,靜態(tài)初始化只在Class對(duì)象首次加載的時(shí)候進(jìn)行一次.
    3. 當(dāng)用new Dog()創(chuàng)建對(duì)象的時(shí)候,首先將在堆上為Dog對(duì)象分配足夠的存儲(chǔ)空間.
    4. 這塊存儲(chǔ)空間會(huì)被清零,這就自動(dòng)地將Dog對(duì)象中的所有基本類型數(shù)據(jù)都設(shè)置成了默認(rèn)值(對(duì)數(shù)字來說就是0,對(duì)布爾類型和字符型也相同),而引用則被設(shè)置成了null.
    5. 執(zhí)行所有出現(xiàn)于字段定義處的初始化動(dòng)作.
    6. 執(zhí)行構(gòu)造器.正如將在第七章所看到的,這可能會(huì)牽涉到很多動(dòng)作尤其是涉及到繼承的時(shí)候.
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 在我是一個(gè)女孩的時(shí)候,我根本不知道有愛麗絲這故事存在。 偶然的機(jī)會(huì),我讀到了愛麗絲的中譯本,故事也許大家都知道,我...
    i家i生活閱讀 595評(píng)論 0 0
  • 凌晨極冷 風(fēng)極冷 極冷的月光 照耀你蒼白的身體 你渴望我的溫暖 你純潔如雪 你純潔如冰 但在這極冷的凌晨 誰又敢擁...
    王子魚閱讀 298評(píng)論 8 6
  • 金九銀十,正是營銷旺季。 作為一個(gè)后臺(tái)維護(hù)人員,以前對(duì)這句話的理解只是概念層面的。 前兩天卻切切實(shí)實(shí)的體驗(yàn)了一把。...
    微芳閱讀 618評(píng)論 0 1
  • 開發(fā)環(huán)境 IDEA 2017 JDK 1.8 Spring 4.2.2.RELEASE Jackson 2.8.5...
    紅燒排骨飯閱讀 10,624評(píng)論 0 7

友情鏈接更多精彩內(nèi)容