Java基礎(chǔ)筆記

在這里記錄一下自己回顧Java基礎(chǔ)時(shí)屋讶,一些覺得掌握的還不牢固的基礎(chǔ)知識(shí)朋沮,查漏補(bǔ)缺菊卷!


Java程序初始化順序

三個(gè)原則

  • 靜態(tài)對(duì)象優(yōu)先于非靜態(tài)對(duì)象毯盈,靜態(tài)對(duì)象只會(huì)初始化一次
  • 父類優(yōu)先于子類
  • 成員變量則是根據(jù)定義的順序進(jìn)行初始化

各種代碼塊的初始化順序則如下:

  1. 父類靜態(tài)變量剃毒,靜態(tài)代碼塊
  2. 子類靜態(tài)變量,子類靜態(tài)代碼塊
  3. 父類費(fèi)靜態(tài)變量搂赋,代碼塊
  4. 父類構(gòu)造方法
  5. 子類非靜態(tài)變量赘阀,代碼塊
  6. 子類構(gòu)造方法

Java對(duì)象的作用域

成員變量:作用范圍與類的實(shí)例對(duì)象的作用范圍相同
靜態(tài)變量:只要一個(gè)類被加載,jvm就會(huì)給該類的靜態(tài)變量分配存儲(chǔ)空間
局部變量:僅限于該類所在的花括號(hào)內(nèi)


構(gòu)造方法

當(dāng)父類沒有提供無參的構(gòu)造方法時(shí)脑奠,子類的構(gòu)造方法中必須顯式的調(diào)用父類的構(gòu)造方法基公;
當(dāng)提供了無參構(gòu)造方法,則無需顯式調(diào)用捺信,因?yàn)榫幾g器會(huì)默認(rèn)調(diào)用父類無參構(gòu)造方法酌媒;
在實(shí)例化對(duì)象時(shí),先執(zhí)行父類的構(gòu)造方法迄靠,然后才是子類


clone方法的理解

  • 首先,為什么會(huì)有該方法喇辽?
    這里涉及到Java方法的兩種傳遞參數(shù)方式:

處理基本數(shù)據(jù)類型時(shí)掌挚,采用的是按值傳遞;
此外菩咨,當(dāng)處理其他數(shù)據(jù)類型時(shí)吠式,都是采用的按引用傳遞,包括在使用“=”賦值時(shí)也是如此

這樣就會(huì)導(dǎo)致一個(gè)問題:當(dāng)需要?jiǎng)?chuàng)建一個(gè)和當(dāng)前已有對(duì)象相同的對(duì)象抽米,又需要對(duì)其中一個(gè)的修改不會(huì)影響到另一個(gè)對(duì)象時(shí)特占,使用一般的賦值操作顯然無法達(dá)到該目的,因此提供了clone方法來提供這個(gè)能力

  • 如何實(shí)現(xiàn)clone方法云茸?
    在將這個(gè)之前是目,先看兩個(gè)概念:

淺復(fù)制:被復(fù)制的對(duì)象的所有變量都和原來的對(duì)象有相同的值,而所有對(duì)其他對(duì)象的引用仍然指向其原來的對(duì)象标捺;
深復(fù)制:會(huì)將原對(duì)象所有引用的對(duì)象全都復(fù)制一遍

下面看如何實(shí)現(xiàn)clone方法:

  1. 使目標(biāo)類實(shí)現(xiàn)Cloneable接口懊纳,該接口中沒有任何方法,只是一個(gè)標(biāo)識(shí)接口
  2. 重寫clone()方法
  3. 在該方法中返回super.clone()亡容,也就是會(huì)調(diào)用至Object的clone方法
    上面是淺復(fù)制的實(shí)現(xiàn)方法嗤疯,若需實(shí)現(xiàn)深復(fù)制,則需要對(duì)對(duì)象中的非基本類型數(shù)據(jù)都調(diào)用clone方法闺兢;
    注意茂缚,這里需要這些屬性所屬類全都實(shí)現(xiàn)clone方法才行

組合和繼承

繼承:is-a的關(guān)系
組合: has-a關(guān)系
能使用就盡量不要使用繼承


多態(tài)

Java中的多態(tài)主要表現(xiàn)為兩種方式:

  1. 方法的重載overload:編譯時(shí)多態(tài),在編譯期間就可以確定調(diào)用哪一個(gè)方法
  2. 覆蓋override:運(yùn)行時(shí)多態(tài),只有在運(yùn)行時(shí)脚囊,才可以確定內(nèi)存中實(shí)例化的是哪一個(gè)對(duì)象
    這里需要注意:只有方法才有多態(tài)的概念帖汞,類中的成員變量并沒有方法的概念,因?yàn)槌蓡T變量是在編譯期間就確定了的凑术;
    因此翩蘸,成員變量的取值為new對(duì)象定義的類型的值
    舉例如下:
    BaseClass b = new SubClass()
    假設(shè)sub是base的子類,這時(shí)打印b.age淮逊,此時(shí)打印出的是base中定義的值而非sub定義

接口與抽象類
接口催首,強(qiáng)調(diào)功能的特定實(shí)現(xiàn),是has-a的關(guān)系
抽象類泄鹏,強(qiáng)調(diào)所屬關(guān)系郎任,是is-a的關(guān)系


static代碼塊常用來初始化靜態(tài)變量
switch支持string類型,其實(shí)也是先判斷字符串的hashcode是否相同备籽,若相同舶治, 再調(diào)用equals方法進(jìn)行匹配


volatile
可以提供可見性,部分有序性车猬,但是無法保證原子性霉猛,因此其還是無法替代synchronized關(guān)鍵字


按值傳遞與引用傳遞

  • 值傳遞:原始數(shù)據(jù)類型,會(huì)擁有不同的存儲(chǔ)空間珠闰,對(duì)參數(shù)的修改不會(huì)影響到原值
  • 引用傳遞:傳遞的是對(duì)象的地址惜浅,二者指向同一內(nèi)存地址,對(duì)形參的修改會(huì)影響到實(shí)參

Java的異常處理用到了多態(tài)的概念伏嗜,在進(jìn)行異常捕獲時(shí)坛悉,如果需要捕獲多個(gè),應(yīng)該先捕獲子類承绸,再捕獲基類裸影;
否則若順序相反,子類異常就不會(huì)被捕獲到了


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末军熏,一起剝皮案震驚了整個(gè)濱河市轩猩,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌羞迷,老刑警劉巖界轩,帶你破解...
    沈念sama閱讀 210,835評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異衔瓮,居然都是意外死亡浊猾,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,900評(píng)論 2 383
  • 文/潘曉璐 我一進(jìn)店門热鞍,熙熙樓的掌柜王于貴愁眉苦臉地迎上來葫慎,“玉大人衔彻,你說我怎么就攤上這事⊥蛋欤” “怎么了艰额?”我有些...
    開封第一講書人閱讀 156,481評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)椒涯。 經(jīng)常有香客問我柄沮,道長(zhǎng),這世上最難降的妖魔是什么废岂? 我笑而不...
    開封第一講書人閱讀 56,303評(píng)論 1 282
  • 正文 為了忘掉前任祖搓,我火速辦了婚禮,結(jié)果婚禮上湖苞,老公的妹妹穿的比我還像新娘拯欧。我一直安慰自己,他們只是感情好财骨,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,375評(píng)論 5 384
  • 文/花漫 我一把揭開白布镐作。 她就那樣靜靜地躺著,像睡著了一般隆箩。 火紅的嫁衣襯著肌膚如雪该贾。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,729評(píng)論 1 289
  • 那天摘仅,我揣著相機(jī)與錄音靶庙,去河邊找鬼。 笑死娃属,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的护姆。 我是一名探鬼主播注祖,決...
    沈念sama閱讀 38,877評(píng)論 3 404
  • 文/蒼蘭香墨 我猛地睜開眼熊泵,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起舔涎,我...
    開封第一講書人閱讀 37,633評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎敬肚,沒想到半個(gè)月后菜循,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,088評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡添祸,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,443評(píng)論 2 326
  • 正文 我和宋清朗相戀三年滚粟,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片刃泌。...
    茶點(diǎn)故事閱讀 38,563評(píng)論 1 339
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡凡壤,死狀恐怖署尤,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情亚侠,我是刑警寧澤曹体,帶...
    沈念sama閱讀 34,251評(píng)論 4 328
  • 正文 年R本政府宣布,位于F島的核電站硝烂,受9級(jí)特大地震影響箕别,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜滞谢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,827評(píng)論 3 312
  • 文/蒙蒙 一串稀、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧爹凹,春花似錦厨诸、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,712評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至颤陶,卻和暖如春颗管,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背滓走。 一陣腳步聲響...
    開封第一講書人閱讀 31,943評(píng)論 1 264
  • 我被黑心中介騙來泰國(guó)打工垦江, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人搅方。 一個(gè)月前我還...
    沈念sama閱讀 46,240評(píng)論 2 360
  • 正文 我出身青樓比吭,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親姨涡。 傳聞我的和親對(duì)象是個(gè)殘疾皇子衩藤,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,435評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容