54.iead快捷鍵的使用java
/* 生成主方法快捷鍵 psvm 生成打印輸出快捷鍵 sout 生成for循環的快捷鍵盤 fori 生成加強的for循環打印數組 數組名.for 生成流程控制語句 Ctrl+Alt+T 生成構造方法、get和set方法、重寫toString()的方法、重寫父類的方法等 alt+insert */ public class Nut{ // 使用快捷鍵alt+insert生成構造方法 public Nut() { } // 運用快捷鍵psvm生成主方法 public static void main(String[] args) { System.out.println("運用快捷鍵sout生成打印輸出語句"); String[] bnuts=new bnuts[]{"碧根果","核桃","杏仁","開心果"}; // 運用快捷鍵fori生成for循環語句 for (int i = 0; i < 4; i++) { System.out.println(bnuts[i]); } // 使用加強的for循環打印數組,bnuts.for+enter鍵 for (String bnut : bnuts) { System.out.println(bnut); } if () { System.out.println("使用流程控制語句快捷鍵Ctrl+Alt+T對光標顯示的語句生成流程控制語句"); } else { } } }
Ctrl+B 進入光標所在的方法/變量的接口或是定義處,等效於Ctrl + 左鍵單擊 Ctrl + D 複製光標所在行或複製選擇內容,並把複製內容插入光標位置下面 Ctrl + F 在當前文件進行文本查找 Ctrl + H 查看類的繼承結構 Ctrl + N 經過類名定位文件 Ctrl + O 快速重寫父類方法 Ctrl + X 剪切所選中行 Ctrl + Y 刪除光標所在行或刪除選中的行 Ctrl + W 遞進式選擇代碼塊 Ctrl + Z 撤銷 Ctrl + F1 在光標所在的錯誤代碼出顯示錯誤信息 Ctrl + F12 彈出當前文件結構層,能夠在彈出的層上直接輸入進行篩選 Ctrl + Space 基礎代碼補全,默認在Windows系統上被輸入法佔用,須要進行修改,建議修改成Ctrl + 分號(已經修改) Ctrl + / 註釋光標所在行代碼,會根據當前不一樣文件類型使用不一樣的註釋符號 Ctrl+Shift+/ 多行註釋,若是按第二次就是反註釋 Alt + Enter 根據光標所在問題,提供快速修復選擇,用的最多的是生成變量 Shift + F3 在查找模式下,定位到上一個匹配處 Ctrl + Alt + B 在某個調用的方法名上使用會跳到具體的實現處 Ctrl + Alt + L 格式化代碼 能夠對當前文件和整個包目錄使用 Ctrl + Alt + T 對選中的代碼彈出環繞選項彈出層 Ctrl + Alt + 左方向鍵 退回到上一個操做的地方,查看源碼的時候很方便 Ctrl + Alt + 右方向鍵 前進到上一個操做的地方,查看源碼的時候很方便 Ctrl + Shift + R 根據輸入內容替換對應內容,範圍爲整個項目或指定目錄內文件 Ctrl + Shift + U 對選中的代碼進行大/小寫輪流轉換 Ctrl + Shift + Z 取消撤銷 Ctrl + Shift + / 代碼塊註釋 Ctrl + Shift + + 展開全部代碼 Ctrl + Shift + - 摺疊全部代碼
55.異常數組
(1)概念:在咱們寫程序的時候不免會出現錯誤,java中的異常機制爲了提升咱們程序的健壯性和容錯性而存在jvm
(2)異常的體系ide
錯誤:Error是throwable的子類,他是程序出現了嚴重的問題,這種問題程序解決不了。spa
異常:都是用Exception爲結尾。咱們能夠經過程序來處理異常。.net
異常分爲兩類:3d
運行時候的異常:能夠編譯經過,程序在運行期間報出來的異常。對象
編譯期異常:這個異常必需要處理,不然無法編譯經過。blog
Exception下面的子類除了RuntimeException之外都是編譯期的異常繼承
RuntimeException下面的全部的子類都是運行時的異常。
56.try catch處理異常
a/b除法的時候若是要是b=0,那麼jvm會給咱們建立一個ArithmeticException對象。運行時異常對象會自動的向上拋出,調用端再拋給jvm,jvm打印出來異常信息。異常信息展現是什麼異常和調用端和被調用端多少行報的異常。異常後面的代碼不能再執行
(1)try catch處理異常
try裏面的代碼就是有可能產生異常對象的代碼
catch(Exception e)用來捕捉到產生的異常對象,catch塊就是來處理異常的代碼塊。
e.printStackTrace();打印異常的信息
try …..catch處理異常的特色:
public static void main(String[] args) { int result=divide(10,0); System.out.println("調用端後面的代碼被執行了"); System.out.println(result); } public static int divide(int a,int b){ int c=0; // 從被調用端處理異常 try { // try裏面的代碼就是可能產生異常的代碼 c=a/b; } catch (Exception e) { // catch(Exception e) 用來捕捉產生異常的對象 System.out.println("發送異常"); e.printStackTrace();// 打印異常信息 } System.out.println("被調用端後面的代碼被執行了"); return c; } }
public static void main(String[] args) { int result= 0; // 從調用端處理異常 try { result = divide(10,0);// 接受到異常對象 } catch (Exception e) { //處理異常 String message=e.getMessage();//得到異常信息 System.out.println(message); String s=e.toString();//得到異常的詳細信息 System.out.println(s); e.printStackTrace();//打印異常的超級詳細的信息 System.out.println("傳錯參數"); result = divide(10,2); } System.out.println(result); } public static int divide(int a,int b){ int c=0; c=a/b; return c; }
57.finall用法
(1)發生了異常會向上的拋出,可是finally裏面的代碼永遠會獲得執行
(2)return後面能夠經過finally來執行代碼
(3) try …..catch …..finally,可是finally裏面的代碼永遠會獲得執行
public static int divide(int a,int b){ int c=0; try { c=a/b; } catch (Exception e) { e.printStackTrace(); } finally { System.out.println("被調用端後面的代碼被執行了"); } return c; }
(4)筆試題,finally是惟一一個能夠return一次以後還能return的代碼塊,能夠修改方法的返回值
public static void main(String[] args) { int result=divide(20,0); System.out.println(result); } public static int divide(int a,int b){ int c=0; try { c=a/b; return c; } catch (Exception e) { c=4; return c;//方法遇到return就造成返回值,後續再修改變量不會改變返回值。 } finally { c=5; return c;//finally是惟一一個能夠return一次以後還能return的代碼塊,能夠修改方法的返回值 } }
58.編譯期間異常
編譯期異常:這個異常必需要處理,不然無法編譯經過。
jdk能夠準確的預測到這個代碼可能發生異常,因此給開發者一個錯誤的警示,讓咱們來處理這種可能發生的異常。
運行時異常向上拋出不須要來聲明的
編譯期的異常若是想要向上拋出就必需要來聲明
編譯期的異常建議你們經過try…catch來處理
運行時的異常建議向上拋,最頂層來處理。
import java.io.IOException; import java.net.ServerSocket; public class AbnomalEditor { public static void main(String[] args) throws IOException { ServerSocket ss=new ServerSocket(8000); } }
import java.io.FileNotFoundException; import java.io.FileReader; public class AbnomalRun { public static void main(String[] args) { try { method(); } catch (FileNotFoundException e) { e.printStackTrace(); } } public static void method() throws FileNotFoundException { FileReader f = new FileReader("monica"); } }
59.自定義異常
(1)自定義規則
咱們之後的項目中自定義的異常99%都是運行時的異常。咱們定義的異常要繼承RuntimeException
在類中繼承RuntimeException的構造器便可。
//定義的異常要繼承RuntimeException public class StockException extends RuntimeException { // 在類中繼承RuntimeException的構造器便可 public StockException() { } public StockException(String message) { super(message); } public StockException(String message, Throwable cause) { super(message, cause); } public StockException(Throwable cause) { super(cause); } public StockException(String message, Throwable cause, boolean enableSuppression, boolean writableStackTrace) { super(message, cause, enableSuppression, writableStackTrace); } }
(2)自定義異常的使用
public class Self { public static void main(String[] args) { try { submitOrder(6); } catch (Exception e) { System.out.println("收到庫存不足信息"); submitOrder(5); } } public static void submitOrder(int stock){ if (stock>5) { throw new StockException("庫存不足"+stock); } else { System.out.println("自動跳轉支付界面"); } } }