JAVA入門小小白學(xué)習(xí)中ing(throws關(guān)鍵字、throw關(guān)鍵字、自定義異常、多線程)

小豬學(xué)習(xí)

小小白慢慢學(xué)習(xí)中ing 第二十八天

努力努力


本日內(nèi)容(throws關(guān)鍵字、throw關(guān)鍵字、自定義異常、多線程)


1、throws關(guān)鍵字

用于一個方法的對外聲明:用于表示該方法不處理異常,交由調(diào)用處進(jìn)行處理。

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

????????}

子類重寫父類的方法時,不能拋出比父類更大的異常。

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

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

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

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

2、throw關(guān)鍵字

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

代碼級別上,主動拋出一個異常對象,提示調(diào)用者:產(chǎn)生問題啦。。

以下是String這個類的源代碼:

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)行時異常,程序不強(qiáng)制一定處理該類型的異常。Exception的異常,包含了受檢異常,程序中必須處理該類型的異常。

????對比throws和throw的區(qū)別。

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

2、throw關(guān)鍵字,代碼中,主動拋出一個異常對象。因?yàn)槟硞€邏輯原因,主動拋出一個異常對象,打斷程序的執(zhí)行。主動拋出異常對象。

3、自定義異常

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

自己定義一個類,用于表示某種異常。需要繼承Exception或其子類即可。

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

自定義異常:

class MyException extends Exception{

????????//提供有參構(gòu)造方法。。

????????public MyException(String msg){

? ? ? ? ? ? ? ? super(msg);//調(diào)用父類的有參構(gòu)造:提供異常的信息

????????}

????????public MyException(){

????????????????super();//父類的無參構(gòu)造,沒有提供異常的信息

????????}

}

程序中主動拋出一個異常對象:

/*

* 設(shè)計一個方法,用于檢驗(yàn)?zāi)挲g,年齡不合法,拋出一個異常

*/

public static void checkAge(int age) throws MyException{

????????if(age < 0){

????????// return;

????????throw new MyException("年齡不能為負(fù)數(shù)。。");

????????}

????????System.out.println("年齡輸入正確,請繼續(xù)。。。");

}

return和finally的參考資料:

https://blog.csdn.net/zoujian1993/article/details/45362931

4、多線程

4.1 生活中的多任務(wù)

生活中,有很多的場景下,同時干多件事兒。比如開車:同時時候手和腳。做作業(yè)同時聽課。泡健身房跑步,聽音樂。。。

舞臺表演:邊唱邊跳。

4.2 windows電腦

windows電腦,打開任務(wù)管理器,發(fā)現(xiàn)電腦中正在執(zhí)行的程序,有多個。每個程序叫就叫做一個進(jìn)程。

windows電腦可以同時執(zhí)行多個程序?那是因?yàn)镃PU太快啦。。

4.3 并行和并發(fā)

串行:任務(wù)一個接一個做。

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

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

?

宏觀并行,微觀串行。

4.4 進(jìn)程

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

一個程序的執(zhí)行,內(nèi)存,CPU。。。

?

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

4.5 線程

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

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

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

首字母大寫--->一個線程

檢查拼寫錯。。--->一個線程

。。。。

4.6 進(jìn)程和線程

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

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

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

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

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

4.7 Java中對于多線程的支持

Java中如何實(shí)現(xiàn)多任務(wù)的?多線程

Thread類:JDK提供好的,Thread類,就是java中關(guān)于多線程的實(shí)現(xiàn)。線程的功能都封裝在了該類中。

?

要使用線程,來實(shí)現(xiàn)程序的并發(fā):一個程序,同時干多件事。

比如:唱歌,同時跳舞

Thread類來實(shí)現(xiàn)

????Java代碼,如何創(chuàng)建一條線程?如何啟動起來?執(zhí)行功能?

兩種創(chuàng)建線程的方式

A:創(chuàng)建線程并啟動:繼承Thread類

????????step1:創(chuàng)建子類,繼承Thread類。

????????step2:重寫run(),線程體。并發(fā)執(zhí)行的內(nèi)容,寫在這個方法中。

????????step3:啟動線程:start()

????????/*

????????class Cat

????????class Person

????????class MyException extends Exception{//異常類

????????}

????????class MyThread extends Thread{//線程類

????????}

????????*/

B:實(shí)現(xiàn)Runnable接口,創(chuàng)建線程的方式二

????????step1:創(chuàng)建實(shí)現(xiàn)類,實(shí)現(xiàn)Runnable接口

????????step2:重寫run(),線程體。并發(fā)執(zhí)行的內(nèi)容,寫在這個方法中。

????????step3:啟動線程:

????????創(chuàng)建實(shí)現(xiàn)類的對象:mt

????????根據(jù)實(shí)現(xiàn)類對象mt,創(chuàng)建Thread類對象t3,t4

????????start()啟動該線程:t3,t4

對比run()和start()

????????run(),是線程體。就是要并發(fā)執(zhí)行內(nèi)容。

????????start(),啟動一個線程?就是該線程準(zhǔn)備就緒了,隨時可以被CPU執(zhí)行。什么時候執(zhí)行,CPU自己說了算。

????????一個線程,只能被start一次。

Thread類的構(gòu)造方法

????????new Thread();//并發(fā)執(zhí)行,執(zhí)行run()方法。

????????new Thread(Runnable target);//并發(fā)執(zhí)行,執(zhí)行的run是Runnable接口的實(shí)現(xiàn)類實(shí)現(xiàn)run方法



希望我能堅持住每天堅持記錄著 ...

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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