2020-04-27

Day-31 異常&多線程

1、異常

1.1莫秆、概念:

在程序運(yùn)行的時(shí)候间雀,代碼產(chǎn)生的不正常事件,導(dǎo)致程序無法正常的繼續(xù)執(zhí)行镊屎。

理解它:代碼寫的不正常惹挟,跑不下去了。缝驳。连锯。

1.2、程序的執(zhí)行流程:

step1:JVM創(chuàng)建主線程用狱,調(diào)用main()萎庭,程序的入口

step2:按照main中的代碼,從上向下執(zhí)行齿拂。。肴敛。

step3:main中的內(nèi)容全部執(zhí)行完畢署海,程序正常結(jié)束吗购。。JVM退出

如果在程序的執(zhí)行過程中砸狞,產(chǎn)生異常了捻勉,比如除0,null的對象調(diào)用方法刀森,父類對象強(qiáng)制轉(zhuǎn)為子類類型踱启。。研底。由JVM負(fù)責(zé)創(chuàng)建一個(gè)該類型的異常對象埠偿,并拋出,從而打斷程序的執(zhí)行榜晦。

理解:程序不正常冠蒋,導(dǎo)致執(zhí)行不下去了,通過異常對象來阻止進(jìn)一步執(zhí)行乾胶。抖剿。

1.3、異常的分類

錯(cuò)誤:Error识窿,系統(tǒng)級(jí)別的問題斩郎,程序解決不了。

異常:Exception喻频,

受檢異常:編譯器在編譯程序的時(shí)候缩宜,檢查出來的異常。程序中必須處理該異常半抱,程序才能正常的執(zhí)行脓恕。

外部因素導(dǎo)致的異常窿侈。

FileNotFoundException炼幔,文件找不到異常

IOException,IO操作異常

SQLException史简,SQL操作異常

? ? ParseException乃秀,解析異常

。圆兵。跺讯。

非受檢異常:編譯器編譯程序的時(shí)候,不檢查殉农。運(yùn)行的時(shí)候可能產(chǎn)生的異常刀脏,程序中不要求一定處理。也叫做運(yùn)行時(shí)異常:RuntimeException

代碼中的邏輯問題導(dǎo)致的異常

ArrayIndexOfBoundsException超凳,數(shù)組下標(biāo)越界異常

StringIndexOutOfBoundsException愈污,字符串下標(biāo)越界異常

ArithmeticException耀态,算術(shù)異常

NullPointerException,空指針異常

ClassCastException暂雹,類轉(zhuǎn)型失敗異常

1.5首装、異常的處理

圖1:異常處理

JVM-->main()-->test1()-->test2()-->test3()....

編碼習(xí)慣上:

? ? try...catch語句:try語句塊中的代碼越少越好。

? ? throws...功能方法:main()不要再throws異常了

1.6杭跪、throws關(guān)鍵字

用于一個(gè)方法的對外聲明:用于表示該方法不處理異常仙逻,交由調(diào)用處進(jìn)行處理。例如:SimpleDateFormate類parse(Sting str)方法的解析異常拋出涧尿。

public? static? void? test() throws? ParseException{

}

子類重寫父類的方法時(shí)系奉,不能拋出比父類更大的異常。

父類拋出異常现斋,子類可以不拋出

父類拋出異常喜最,子類可以拋出和父類一樣的或者是比父類小的異常

父類拋出異常,子類不能拋出比父類更大的異常

父類沒有拋出異常庄蹋,子類也不能拋出異常

1.7瞬内、throw關(guān)鍵字

用于代碼中主動(dòng)拋出一個(gè)異常對象:設(shè)計(jì)一個(gè)方法的功能的時(shí)候,根據(jù)邏輯分析限书,可以主動(dòng)拋出一個(gè)異常對象虫蝶。

代碼級(jí)別上,主動(dòng)拋出一個(gè)異常對象倦西,提示調(diào)用者:產(chǎn)生問題啦能真。。

以下是String這個(gè)類的源代碼:

public char charAt(int index) {

? ? ? ? if ((index < 0) || (index >= value.length)) {

? ? ? ? ? ? throw new StringIndexOutOfBoundsException(index);

? ? ? ? }

? ? ? ? return value[index];

? ? }

【面試題】對比Exception和RuntimeException的區(qū)別扰柠。

1粉铐、Exception是最大的異常父類。RuntimeException是Exception的子類卤档。

2蝙泼、RuntimeException是運(yùn)行時(shí)異常,程序不強(qiáng)制一定處理該類型的異常劝枣。Exception的異常汤踏,包含了受檢異常,程序中必須處理該類型的異常舔腾。

【面試題】對比throws和throw的區(qū)別溪胶。

1、throws關(guān)鍵字稳诚,用于表示一個(gè)方法向外聲明哗脖,該方法不處理異常,交由調(diào)用處處理這個(gè)異常。處理異常的一種方式:捕獲懒熙,拋出丘损。

2、throw關(guān)鍵字工扎,代碼中,主動(dòng)拋出一個(gè)異常對象衔蹲。因?yàn)槟硞€(gè)邏輯原因肢娘,主動(dòng)拋出一個(gè)異常對象,打斷程序的執(zhí)行舆驶。主動(dòng)拋出異常對象橱健。

【面試題】Collection和Collections

【面試題】Array和Arrays

1.8、自定義異常

了解性內(nèi)容:理論知識(shí)能夠懂沙廉。

自己定義一個(gè)類拘荡,用于表示某種異常。需要繼承Exception或其子類即可撬陵。

問題:不是哪個(gè)類的對象珊皿,都有被創(chuàng)建并拋出就能夠打斷程序的功能。

自定義異常:

圖2:自定義異常

2巨税、多線程

2.1 并行和并發(fā)

串行:任務(wù)一個(gè)接一個(gè)做蟋定。

并行:同時(shí)在做多個(gè)任務(wù)。(硬件的支持)

并發(fā):在多個(gè)任務(wù)之間快速的切換草添,看起來同時(shí)執(zhí)行多個(gè)任務(wù)驶兜。但是實(shí)際上,某一個(gè)事件點(diǎn)远寸,執(zhí)行1個(gè)任務(wù)抄淑。

宏觀并行,微觀串行驰后。

圖3:穿行肆资、并行、并發(fā)

2.2倡怎、 進(jìn)程

進(jìn)程:就是正在執(zhí)行的程序迅耘。占用系統(tǒng)資源。

一個(gè)程序的執(zhí)行监署,內(nèi)存颤专,CPU。钠乏。栖秕。

注意區(qū)分:電腦上安裝的軟件。沒有跑起來晓避,不能算進(jìn)程簇捍。

2.3只壳、 線程

何為線程:概念:進(jìn)程中的一個(gè)執(zhí)行路徑。

進(jìn)程:一個(gè)正在執(zhí)行的程序暑塑。

Word文檔:--->一個(gè)進(jìn)程

首字母大寫--->一個(gè)線程

檢查拼寫錯(cuò)吼句。。--->一個(gè)線程

事格。惕艳。。驹愚。

2.4远搪、 進(jìn)程和線程

1、進(jìn)程:一個(gè)正在執(zhí)行的程序:JVM正在執(zhí)行的程序

2逢捺、線程:正在執(zhí)行的程序中的一條執(zhí)行路徑

3谁鳍、多線程:一個(gè)進(jìn)程中,可以同時(shí)有多條線程一起執(zhí)行劫瞳。

如果一個(gè)進(jìn)程沒有了倘潜,該進(jìn)程中的線程也就沒有了。

如果線程沒有了柠新,但是進(jìn)程不一定的窍荧。

2.5、線程的創(chuàng)建啟動(dòng)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恨憎,一起剝皮案震驚了整個(gè)濱河市蕊退,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌憔恳,老刑警劉巖瓤荔,帶你破解...
    沈念sama閱讀 212,718評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異钥组,居然都是意外死亡输硝,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門程梦,熙熙樓的掌柜王于貴愁眉苦臉地迎上來点把,“玉大人,你說我怎么就攤上這事屿附±商樱” “怎么了?”我有些...
    開封第一講書人閱讀 158,207評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵挺份,是天一觀的道長褒翰。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么优训? 我笑而不...
    開封第一講書人閱讀 56,755評(píng)論 1 284
  • 正文 為了忘掉前任朵你,我火速辦了婚禮,結(jié)果婚禮上揣非,老公的妹妹穿的比我還像新娘抡医。我一直安慰自己,他們只是感情好妆兑,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,862評(píng)論 6 386
  • 文/花漫 我一把揭開白布魂拦。 她就那樣靜靜地躺著,像睡著了一般搁嗓。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上箱靴,一...
    開封第一講書人閱讀 50,050評(píng)論 1 291
  • 那天腺逛,我揣著相機(jī)與錄音,去河邊找鬼衡怀。 笑死棍矛,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抛杨。 我是一名探鬼主播够委,決...
    沈念sama閱讀 39,136評(píng)論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼怖现!你這毒婦竟也來了茁帽?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,882評(píng)論 0 268
  • 序言:老撾萬榮一對情侶失蹤屈嗤,失蹤者是張志新(化名)和其女友劉穎潘拨,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體饶号,經(jīng)...
    沈念sama閱讀 44,330評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡铁追,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,651評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了茫船。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片琅束。...
    茶點(diǎn)故事閱讀 38,789評(píng)論 1 341
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖算谈,靈堂內(nèi)的尸體忽然破棺而出涩禀,到底是詐尸還是另有隱情,我是刑警寧澤濒生,帶...
    沈念sama閱讀 34,477評(píng)論 4 333
  • 正文 年R本政府宣布埋泵,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏丽声。R本人自食惡果不足惜礁蔗,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 40,135評(píng)論 3 317
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望雁社。 院中可真熱鬧浴井,春花似錦、人聲如沸霉撵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽徒坡。三九已至撕氧,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間喇完,已是汗流浹背伦泥。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評(píng)論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留锦溪,地道東北人不脯。 一個(gè)月前我還...
    沈念sama閱讀 46,598評(píng)論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像刻诊,于是被迫代替她去往敵國和親防楷。 傳聞我的和親對象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,697評(píng)論 2 351

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

  • 一:java概述:1则涯,JDK:Java Development Kit复局,java的開發(fā)和運(yùn)行環(huán)境,java的開發(fā)工...
    ZaneInTheSun閱讀 2,635評(píng)論 0 11
  • 1.import static是Java 5增加的功能,就是將Import類中的靜態(tài)方法是整,可以作為本類的靜態(tài)方法來...
    XLsn0w閱讀 1,217評(píng)論 0 2
  • 面向?qū)ο笾饕槍γ嫦蜻^程肖揣。 面向過程的基本單元是函數(shù)。 什么是對象:EVERYTHING IS OBJECT(萬物...
    sinpi閱讀 1,046評(píng)論 0 4
  • 一浮入、上節(jié)課回顧 異常Exception 1龙优、概念:在程序運(yùn)行的時(shí)候,代碼產(chǎn)生的不正常事件事秀,導(dǎo)致程序無法正常的繼續(xù)執(zhí)...
    機(jī)會(huì)留給有準(zhǔn)備的人閱讀 212評(píng)論 0 0
  • 本文出自 Eddy Wiki 彤断,轉(zhuǎn)載請注明出處:http://eddy.wiki/interview-java.h...
    eddy_wiki閱讀 2,078評(píng)論 0 14