Java 開發(fā)者最困惑的四件事

掌握 Java 絕非易事,因?yàn)樵S多概念非秤承玻晦澀,非常復(fù)雜


大概每個(gè)人在學(xué)生時(shí)代開始就使用Java了甲雅,我們一直在學(xué)習(xí)Java解孙,但Java中總有一些概念含混不清,不論是對初級還是高級程序員都是如此抛人。所以弛姜,這篇文章的目的就是弄清楚這些概念。讀完本文你會對這些概念有更深入的了解妖枚,還能弄清楚一切灰色的東西廷臼。在本書中,我們將討論匿名內(nèi)聯(lián)類绝页、多線程荠商、同步和序列化。

匿名類的用法多線程同步的實(shí)現(xiàn)序列化

匿名類

Java匿名類很像局部類或內(nèi)聯(lián)類续誉,只是沒有名字莱没。我們可以利用匿名類,同時(shí)定義并實(shí)例化一個(gè)類屈芜。只有局部類僅被使用一次時(shí)才應(yīng)該這么做。匿名類不能有顯式定義的構(gòu)造函數(shù)属铁。相反,每個(gè)匿名類都隱含地定義了一個(gè)匿名構(gòu)造函數(shù)。

創(chuàng)建匿名類有兩種方法:

擴(kuò)展已有的類(可以是抽象類拼卵,也可以是具體類)創(chuàng)建接口理解代碼的最好方法就是先閱讀,所以我們首先來看看代碼徊哑。

interfaceFootball{voidkick();}classAnnonymousClass {publicstatic Football football = new Football() {?@Overridepublicvoidkick() {?System.out.println("Nested Anonymous Class.");?}?};publicstaticvoidmain(String[] args){// anomynous class inside the methodFootball footballObject = new Football()?{?@Overridepublicvoidkick(){System.out.println("Anonymous Class");?}?};?footballObject.kick();AnnonymousClass.football.kick();?}?}

匿名類可以在類和函數(shù)代碼塊中創(chuàng)建。你也許知道梢莽,匿名類可以用接口來創(chuàng)建蟹漓,也可以通過擴(kuò)展抽象或具體的類來創(chuàng)建。上例中我先創(chuàng)建了一個(gè)接口Football嗽交,然后在類的作用域和main()方法內(nèi)實(shí)現(xiàn)了匿名類夫壁。Football也可以是抽象類司蔬,也可以是與interface并列的頂層類肺缕。

Football可以是抽象類跛十,請看下面的代碼芥映。

publicabstractclassFootball{?abstractvoidkick();}

匿名類不僅可以是抽象類洲尊,還可以是具體類。

// normal or concrete classpublic classFootball{ public void kick(){}}// end ofclassscope.

如果Football類沒有不帶參數(shù)的構(gòu)造方法怎么辦?我們可以在匿名類中訪問類變量嗎霎苗?我們需要在匿名類中重載所有方法嗎?

// normal or concrete classpublicclassFootball {protectedint score;publicFootball(int score){this.score = score;?}publicvoidscore(){?System.out.println("Score "+score);};publicvoidkick(){}publicstaticvoidmain(String[] args) {?Football football = new Football(7)?{?@Overridepublicvoidscore() {?System.out.println("Anonymous class inside the method "+score);?}?};?football.score();?}}// end of class scope.

創(chuàng)建匿名類時(shí)可以使用任何構(gòu)造方法唁盏。注意這里也使用了構(gòu)造方法的參數(shù)。匿名類可以擴(kuò)展頂層類,并實(shí)現(xiàn)抽象類或接口刽严。所以,訪問控制的規(guī)則依然適用倒脓。我們可以訪問protected變量甘晤,而改成private就不能訪問了。由于上述代碼中擴(kuò)展了Football類饲做,我們不需要重載所有方法线婚。但是,如果它是個(gè)接口或抽象類艇炎,那么必須為所有未實(shí)現(xiàn)的方法提供實(shí)現(xiàn)酌伊。匿名類中不能定義靜態(tài)初始化方法或成員接口。匿名類可以有靜態(tài)成員變量缀踪,但它們必須是常量居砖。匿名類的用途:

更清晰的項(xiàng)目結(jié)構(gòu):通常我們在需要隨時(shí)改變某個(gè)類的某些方法的實(shí)現(xiàn)時(shí)使用匿名類。這樣做就不需要在項(xiàng)目中添加新的*.java文件來定義頂層類了驴娃。特別是在頂層類只被使用一次時(shí)奏候,這種方法非常好用。UI事件監(jiān)聽器:在圖形界面的應(yīng)用程序中唇敞,匿名類最常見的用途就是創(chuàng)建各種事件處理器蔗草。例如咒彤,下述代碼:button.setOnClickListener(new View.OnClickListener() {publicvoidonClick(View v) {// your handler code here?}?});

我們創(chuàng)建了一個(gè)匿名類,實(shí)現(xiàn)了setOnClickListener接口咒精。當(dāng)用戶點(diǎn)擊按鈕時(shí)會觸發(fā)它的onClick方法镶柱。

多線程

Java中的多線程能夠同時(shí)執(zhí)行多個(gè)線程。線程是輕量級的子進(jìn)程模叙,也是處理的最小單位歇拆。使用多線程的主要目的是最大化CPU的使用率。我們使用多線程而不是多進(jìn)程范咨,因?yàn)榫€程更輕量化故觅,也可以共享同一個(gè)進(jìn)程內(nèi)的內(nèi)存空間。多線程用來實(shí)現(xiàn)多任務(wù)渠啊。

除了以上的內(nèi)容的內(nèi)容以外输吏,還有很多是為我們需要記住并且疑惑的事情。

合肥北大青鳥一元校區(qū)是隸屬于北大青鳥旗下的一家IT培訓(xùn)機(jī)構(gòu)替蛉,這里有豐富的Java教育資源贯溅,完善的教育體系,和多個(gè)大型企業(yè)擁有合作躲查,學(xué)員學(xué)完課程之后推薦就業(yè)【北大青鳥一元校區(qū) www.kgcbdqn.com】百度搜索“北大青鳥一元校區(qū)”,即可領(lǐng)取試聽課程盗迟,這里有專業(yè)的講解,幫你撥開云霧熙含,解決你的疑惑

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末罚缕,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子怎静,更是在濱河造成了極大的恐慌邮弹,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,589評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件蚓聘,死亡現(xiàn)場離奇詭異腌乡,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)夜牡,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,615評論 3 396
  • 文/潘曉璐 我一進(jìn)店門与纽,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人塘装,你說我怎么就攤上這事急迂。” “怎么了蹦肴?”我有些...
    開封第一講書人閱讀 165,933評論 0 356
  • 文/不壞的土叔 我叫張陵僚碎,是天一觀的道長。 經(jīng)常有香客問我阴幌,道長勺阐,這世上最難降的妖魔是什么卷中? 我笑而不...
    開封第一講書人閱讀 58,976評論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮渊抽,結(jié)果婚禮上蟆豫,老公的妹妹穿的比我還像新娘。我一直安慰自己懒闷,他們只是感情好无埃,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,999評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著毛雇,像睡著了一般。 火紅的嫁衣襯著肌膚如雪侦镇。 梳的紋絲不亂的頭發(fā)上灵疮,一...
    開封第一講書人閱讀 51,775評論 1 307
  • 那天,我揣著相機(jī)與錄音壳繁,去河邊找鬼震捣。 笑死,一個(gè)胖子當(dāng)著我的面吹牛闹炉,可吹牛的內(nèi)容都是我干的蒿赢。 我是一名探鬼主播,決...
    沈念sama閱讀 40,474評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼渣触,長吁一口氣:“原來是場噩夢啊……” “哼羡棵!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起嗅钻,我...
    開封第一講書人閱讀 39,359評論 0 276
  • 序言:老撾萬榮一對情侶失蹤皂冰,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后养篓,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體秃流,經(jīng)...
    沈念sama閱讀 45,854評論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,007評論 3 338
  • 正文 我和宋清朗相戀三年柳弄,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了舶胀。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,146評論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡碧注,死狀恐怖嚣伐,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情萍丐,我是刑警寧澤纤控,帶...
    沈念sama閱讀 35,826評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站碉纺,受9級特大地震影響船万,放射性物質(zhì)發(fā)生泄漏刻撒。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,484評論 3 331
  • 文/蒙蒙 一耿导、第九天 我趴在偏房一處隱蔽的房頂上張望声怔。 院中可真熱鬧,春花似錦舱呻、人聲如沸醋火。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,029評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽芥驳。三九已至,卻和暖如春茬高,著一層夾襖步出監(jiān)牢的瞬間兆旬,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,153評論 1 272
  • 我被黑心中介騙來泰國打工怎栽, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留丽猬,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 48,420評論 3 373
  • 正文 我出身青樓熏瞄,卻偏偏與公主長得像脚祟,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子强饮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,107評論 2 356

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