Java響應式關聯式資料庫多執行緒實現方式
Java處理異常的幾個小知識,如果 Java 方法不能按照正常的流程執行,那麼可以通過另外一種途徑退出:丟擲一個封裝了錯誤資訊的物件,這個就是Java的異常;當發生異常時,後面的程式碼無法繼續執行,而是由異常處理器繼續執行。
Java培訓
一、異常的分類
Throwable是所有異常的超類,下一級可以分為Error和Exception :
- Error
Error是指Java執行時系統內部的錯誤,或者說它代表了JVM本身的錯誤,通常都是比較嚴重的錯誤,比如記憶體溢位, 虛擬機器錯誤等等;Error通常和硬體或JVM有關,計算機軟體著作權證申請,個人申請計算機軟體著作權和程式本身無關,所以不能被程式碼捕獲和處理。
- Exception
我們經常說的異常是指Exception,又可以分成執行時異常和檢查異常。
RuntimeException:執行時異常,這類異常在編譯期間不強制程式碼捕捉,但是可能在在 JVM 執行期間丟擲異常;出現此類異常,通常是程式碼的問題,所以需要修改程式避免這類異常。常見的執行時異常,比如:NullPointerException、ClassCastException 等等。
CheckedException:檢查異常,這種異常發生在編譯階段,Java 編譯器會強制程式碼去捕獲和處理此類異常;比如:ClassNotFoundException、IllegalAccessException 等等。
二、異常的處理方法
捕獲異常使用 try…catch 語句,把可能發生異常的程式碼放到 try {…} 中,然後使用catch 捕獲對應的異常;我們也可以在程式碼塊中使用Throw向上級程式碼丟擲異常;在方法中使用 throws 關鍵字,向上級程式碼丟擲異常;
三、Throw和throws的區別
Throw在方法內,後面跟著異常物件;而throws是用在方法上,後面跟異常類;
Throw會丟擲具體的異常物件,當執行到Throw的時候,方法內的程式碼也就執行結束了;throws用來宣告異常,提醒呼叫方這個方法可能會出現這種異常,請做好處理的準備,但是不一定會真的出現異常。
四、使用Exception的一些建議
-
不要試圖通過異常來控制程式流程,哪裡可以申請軟體著作權,申請軟體著作權的作品一般有什麼要求比如開發一個介面,正確的做法是對入參進行非空驗證,當引數為空的時候返回“引數不允許為空”,而不應該捕捉到空指標的時候返回錯誤提示。
-
僅捕獲有必要的程式碼,儘量不要用一個try…catch 包住大段甚至整個方法內所有的程式碼,因為這樣會影響JVM對程式碼進行優化,從而帶來額外的效能開銷。
-
很多程式設計師喜歡catch(Exception e),其實應該儘可能地精確地指出是什麼異常。
-
不要忽略異常,捕捉到異常之後千萬不能什麼也不做,要麼在catch{…}中輸出異常資訊,要麼通過Throw或throws丟擲異常,讓上層程式碼處理。
-
儘量不要在catch{…}中輸出異常後,又向上層程式碼丟擲異常,因為這樣會輸出多條異常資訊,而且它們還是相同的,這樣可能會產生誤導。
-
不要在finally{…}中寫return,因為try{…} 在執行return之前執行 finally{…} ,如果 finally{…}中有return,那麼將不再執行try{…}中的return。
-
Java多執行緒實現方式主要有三種:繼承Thread類、實現Runnable介面、使用ExecutorService、Callable、Future實現有返回結果的多執行緒。其中前兩種方式執行緒執行完後都沒有返回值,只有最後一種是帶返回值的。
Java培訓
1、繼承Thread類實現多執行緒
繼承Thread類的方法儘管被我列為一種多執行緒實現方式,但Thread本質上也是實現了Runnable介面的一個例項,它代表一個執行緒的例項,並且,啟動執行緒的唯一方法就是通過Thread類的start()例項方法。start()方法是一個native方法,貴陽軟體著作權申請,北京軟體著作權辦理它將啟動一個新執行緒,並執行run()方法。這種方式實現多執行緒很簡單,通過自己的類直接extend Thread,並複寫run()方法,就可以啟動新執行緒並執行自己定義的run()方法。例如:
[Java] view plain copypublic class MyThread extends Thread {
public void run() {
System.out.println(“MyThread.run()”);
}
}
在合適的地方啟動執行緒如下:
[Java] view plain copyMyThread myThread1 = new MyThread();
MyThread myThread2 = new MyThread();
myThread1.start();
myThread2.start();
2、實現Runnable介面方式實現多執行緒
如果自己的類已經extends另一個類,就無法直接extends Thread,此時,必須實現一個Runnable介面,如下:
[Java] view plain copypublic class MyThread extends OtherClass implements Runnable {
public void run() {
System.out.println(“MyThread.run()”);
}
}
為了啟動MyThread,全國軟體著作權申請,軟體著作權證照申請需要首先例項化一個Thread,並傳入自己的MyThread例項:
[Java] view plain copyMyThread myThread = new MyThread();
Thread thread = new Thread(myThread);
thread.start();
事實上,當傳入一個Runnable target引數給Thread後,Thread的run()方法就會呼叫target.run(),參考JDK原始碼:軟體著作權申請價格,軟體著作權申請專利
[Java] view plain copypublic void run() {
if (target != null) {
target.run();
}
}
3、使用ExecutorService、Callable、Future實現有返回結果的多執行緒
ExecutorService、Callable、Futurehttp://daduchang.net/446868.html這個物件實際上都是屬於Executor框架中的功能類。 這裡面對該框架做了很詳細的解釋。返回結果的執行緒是在JDK1.5中引入的新特徵,確實很實用,有了這種特徵我就不需要再為了得到返回值而大費周折了,而且即便實現了也可能漏洞百出。
可返回值的任務必須實現Callable介面,類似的,無返回值的任務必須Runnable介面。執行Callable任務後,可以獲取一個Future的物件,在該物件上呼叫get就可以獲取到Callable任務返回的Object了,再結合執行緒池介面ExecutorService就可以實現傳說中有返回結果的多執行緒了。
相關文章
- Java多執行緒實現方式Java執行緒
- 響應式關聯式資料庫處理R2DBC資料庫
- Java實現多執行緒的三種方式Java執行緒
- java執行緒實現方式Java執行緒
- Java高併發與多執行緒(二)-----執行緒的實現方式Java執行緒
- 關於多執行緒的兩種實現方式執行緒
- Java多執行緒之—Synchronized方式和CAS方式實現執行緒安全效能對比Java執行緒synchronized
- Java建立多執行緒的幾種方式實現Java執行緒
- Java之實現多執行緒的方式二:實現Runnable介面Java執行緒
- Java之實現多執行緒的方式三:實現Callable介面(結合執行緒池使用)Java執行緒
- Java多執行緒的實現Java執行緒
- Java中實現執行緒的方式Java執行緒
- 深入理解 Java 多執行緒、Lambda 表示式及執行緒安全最佳實踐Java執行緒
- 多執行緒:繼承方式和實現方式的聯絡與區別執行緒繼承
- 面試-實現多執行緒的方式面試執行緒
- 主流關聯式資料庫鎖實現的區別資料庫
- Java實現多執行緒詳解一 ( 繼承Thread方式 )Java執行緒繼承thread
- 多執行緒常用函式執行緒函式
- Java之實現多執行緒的方式一 :繼承Thread類Java執行緒繼承thread
- Vue響應式—-資料響應式原理Vue
- Web Sql 關聯式資料庫WebSQL資料庫
- Vue響應式資料: Observer模組實現VueServer
- Java多執行緒【三種實現方法】Java執行緒
- 【java】【多執行緒】建立執行緒的兩種常用方式(2)Java執行緒
- 【多執行緒高併發程式設計】二 實現多執行緒的幾種方式執行緒程式設計
- 使用R2DBC實現資料庫的響應式訪問資料庫
- java的執行緒、建立執行緒的 3 種方式、靜態代理模式、Lambda表示式簡化執行緒Java執行緒模式
- vue響應式資料的實現原理解析Vue
- 最直白的方式直面Java多執行緒Java執行緒
- Java建立多執行緒的四種方式Java執行緒
- 關聯式資料庫 Query_Execution資料庫
- 使用Java實現多執行緒程式設計Java執行緒程式設計
- 關聯式資料庫很快會替代向量資料庫資料庫
- 關聯式資料庫與文件資料庫對比資料庫
- Java多執行緒之守護執行緒實戰Java執行緒
- 如何實現多執行緒執行緒
- Java多執行緒-執行緒中止Java執行緒
- python使用多執行緒備份資料庫Python執行緒資料庫