更新時間:2021-04-26 11:08:41 來源:動力節點 瀏覽901次
1)基本特點
底層就是用數組來實現的;
在方法內部可變參可以直接當成數組進行操作;
方法調用的時候,可以傳遞多個參數,也可以傳遞數組,還可以不傳或者傳遞一個 null;
一個參數列表只能有一個可變參,而且只能寫在最后;
2)可變參對方法重載的影響
參數是數組的方法和可變參方法不能共存;
空參方法和可變參方法可以共存,不傳遞參數的時候默認調用空參方法(子類沒有就找父類),實在沒有空參,才會調用可變參方法;
(String…strs)、(String str,String…strs) 、(String str)、(String str,String str2)這樣的參數列表是可以共存的,只是為了區分方法參數傳遞的時候比較麻煩;
是一個特殊的方法,方法名和類名相同,無返回值聲明(實際上會返回對象),可以空參也可以含參;
在不寫構造器的情況下,JVM會自動在一個類中注入一個空參的構造器,如果寫了構造器(不管有參還是無參),則不會自動生成;
許多框架在對類進行實例化的時候會調用空參構造器,所以在構建類的時候最好明確提供一個空參的構造器以防止出錯;
構造器一般用 public 修飾,少數情況會將構造器私有,來限制類對象的創建(比如單例設計的時候);
1)錯誤 error
運行時發生錯誤,編譯器無法檢查
從Error中恢復是不可能的
Error主要是由運行應用程序的環境引起的
示例:java.lang.StackOverflowError,java.lang.OutOfMemoryError
2)異常 exception
異常包括檢查異常(對編譯器已知)和未檢查異常(運行時發生,對編譯器未知)
可以通過try-catch塊處理異常來恢復異常
異常主要是由應用程序本身引起的
檢查異常:SQLException,IOException 運行時異常:ArrayIndexOutOfBoundException,ClassCastException,NullPointerException
3)個人理解:出現異常和錯誤都意味著我們的程序出現了問題,異常是我們能夠截獲和處理的問題,另一些問題比較嚴重,是我們不應截獲和無法處理的,這些就是錯誤
二者都是在運行的時候發生;
檢查異常是編譯器能夠預知的異常,代碼中可能出現檢查異常編譯器會強制我們進行處理;
運行時異常是無法預知的,因為一些程序的邏輯問題(數組下標越界等)可能在運行時拋出;
運行時異常不具有代碼侵入性,拋出運行時異常無需在方法聲明的時候寫 throws 語句;
檢查異常如果不用 try–catch 進行處理,從異常發生方法一直到頂層的調用方法都需要寫 throws 語句;
如果發生異常,try 的語句塊中,發生異常的語句后面的語句會被跳過;
try-catch-finally 后面還有語句,這些語句無論是否發生異常都會執行(前提是前面沒有 return);
finally 中的語句執行的時機是在 return 之前,finally中最好不要有 return ,因為可能會覆蓋 try–catch 中的 return;
統一了對外異常展示的方式,可以隱藏底層的異常,這樣更安全,異常信息也更加的直觀;
系統中有些錯誤是符合Java語法的,但不符合我們項目的業務邏輯,需要使用自定義異常來進行處理;
異常鏈是一種面向對象編程技術,指將捕獲的異常包裝進一個新的異常中并重新拋出的異常處理方式,原異常被保存為新異常的一個屬性(比如cause);
把捕獲的異常包裝成新的異常,經過層層的包裝,就像鏈式反應一樣,一個導致(cause)另一個,這樣最頂層拋出的異常中也能獲取到底層的異常信息(getCause方法);
異常鏈的意義是一個方法應該拋出定義在相同的抽象層次上的異常,同時也不應丟棄更低層次的異常信息;
異常需要封裝和傳遞,我們在進行系統開發的時候,不要“吞噬”異常,也不要“赤裸裸”的拋出異常,封裝后在拋出,通過異常鏈傳遞,可以使系統更健壯友好;
以上就是動力節點小編介紹的“JAVA核心技術基礎部分的總結”的內容,希望對大家有幫助,如有疑問,請在線咨詢,有專業老師隨時為您服務。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習