java學習筆記#3-異常/集合

weixin_33716557發表於2017-05-02

異常:

所有異常的父類是Throwable類,它的兩個子類:Error,Exception

Error:

Error出現程式必然崩潰,常見Error如虛擬機器錯誤,執行緒死鎖。

Exception:

我們常說的異常就是指Exception。Exception出現表示程式編碼、環境或者輸入等出現問題。
Exception異常中比較主要的一個RuntimeException。
這類異常由虛擬機器自動丟擲與捕獲,絕大多數情況是程式碼有問題。


4413622-c442c404bc21e868.png
RuntimeException

檢查異常需要人為新增Catch。


異常的丟擲:

throw:

將產生的異常丟擲(動作)。寫入函式體內部。

throws:

宣告將要丟擲任何型別的異常(宣告)。丟擲的異常不處理,直接給上一級。

一般而言:
在採用邏輯規避的同時輔助try-catch處理。
使用多重catch(子類在前,父類在後),並在最後catch(Expection)來處理可能遺漏的異常。
不要僅僅使用printStackTrace(),最好能夠詳細處理異常。
使用finally塊去實現業務邏輯回滾等方法來應對異常。


字串相關:

String

string類具有不可變性,每次修改都需要分配空間進行儲存。當string頻繁修改的時候會產生很多零時變數。所以最好使用StringBuilder類。

StringBuilder

對StirngBuilder進行修改的時候,系統不會去建立新物件。


getInstance() 與new();

兩者的區別主要在於類是否是抽象類。抽象類只能通過getInstance()來例項化。


集合:

集合與陣列對比:

陣列長度在宣告的時候進行固定,所以當有新的元素新增進陣列的時候,需要新建更長的陣列,然後移動原陣列中的內容。
集合的容量是可以動態擴充套件的。

陣列通過陣列下標進行元素訪問。找特定元素往往需要遍歷所有的內容。
集合可以通過任意型別查詢物件位置。集合還提供了對映關係,可以用於快速找到特定內容。

集合框架體系結構:

collection中元素都是獨立出現的。
map中元素成對出現。


4413622-2e6f81595f66d4bd.png
集合框架體系結構

list:元素有序且可重複,順序表。
queue:元素有序可重複,連結串列。
set:元素不可重複,數學集合。

當我們對集合中的物件呼叫contains()方法時,實際上是在呼叫equals(Object obj)方法進行比較。即使輸入的元素與相比較的元素屬性值全部相等,但是仍是兩個不通的物件。所以contains返回值為false,為了得到通過比較出相同屬性值而得到的true結果,就需要重寫equals方法。

sort()方法

Collections.sort(object obj)中,引數可以是自定義的class集合,但是因為自定的class預設是沒有繼承comparable介面的,所以不可比較。

需要繼承comparable介面並實現compareTo功能。

public class Course implements Comparable<Course>
...
...
public int compareTo(Course o) {
        return this.getId().compareTo(o.getId());
    }

相關文章