異常:
所有異常的父類是Throwable類,它的兩個子類:Error,Exception
Error:
Error出現(xiàn)程序必然崩潰,常見Error如虛擬機錯誤,線程死鎖。
Exception:
我們常說的異常就是指Exception。Exception出現(xiàn)表示程序編碼、環(huán)境或者輸入等出現(xiàn)問題。
Exception異常中比較主要的一個RuntimeException。
這類異常由虛擬機自動拋出與捕獲,絕大多數(shù)情況是代碼有問題。

檢查異常需要人為添加Catch。
異常的拋出:
throw:
將產生的異常拋出(動作)。寫入函數(shù)體內部。
throws:
聲明將要拋出任何類型的異常(聲明)。拋出的異常不處理,直接給上一級。
一般而言:
在采用邏輯規(guī)避的同時輔助try-catch處理。
使用多重catch(子類在前,父類在后),并在最后catch(Expection)來處理可能遺漏的異常。
不要僅僅使用printStackTrace(),最好能夠詳細處理異常。
使用finally塊去實現(xiàn)業(yè)務邏輯回滾等方法來應對異常。
字符串相關:
String
string類具有不可變性,每次修改都需要分配空間進行存儲。當string頻繁修改的時候會產生很多零時變量。所以最好使用StringBuilder類。
StringBuilder
對StirngBuilder進行修改的時候,系統(tǒng)不會去創(chuàng)建新對象。
getInstance() 與new();
兩者的區(qū)別主要在于類是否是抽象類。抽象類只能通過getInstance()來實例化。
集合:
集合與數(shù)組對比:
數(shù)組長度在聲明的時候進行固定,所以當有新的元素添加進數(shù)組的時候,需要新建更長的數(shù)組,然后移動原數(shù)組中的內容。
集合的容量是可以動態(tài)擴展的。
數(shù)組通過數(shù)組下標進行元素訪問。找特定元素往往需要遍歷所有的內容。
集合可以通過任意類型查找對象位置。集合還提供了映射關系,可以用于快速找到特定內容。
集合框架體系結構:
collection中元素都是獨立出現(xiàn)的。
map中元素成對出現(xiàn)。

list:元素有序且可重復,順序表。
queue:元素有序可重復,鏈表。
set:元素不可重復,數(shù)學集合。
當我們對集合中的對象調用contains()方法時,實際上是在調用equals(Object obj)方法進行比較。即使輸入的元素與相比較的元素屬性值全部相等,但是仍是兩個不通的對象。所以contains返回值為false,為了得到通過比較出相同屬性值而得到的true結果,就需要重寫equals方法。
sort()方法
Collections.sort(object obj)中,參數(shù)可以是自定義的class集合,但是因為自定的class默認是沒有繼承comparable接口的,所以不可比較。
需要繼承comparable接口并實現(xiàn)compareTo功能。
public class Course implements Comparable<Course>
...
...
public int compareTo(Course o) {
return this.getId().compareTo(o.getId());
}