RuntimeException就是運行時異常,它是java編譯器事先不可預見的異常,而其他的異常大致的說是檢查時異常,就是說幫你檢查出來了可能出現的異常。此時你程序未執行,但是有可能拋出這個異常,所以提醒你記得捕獲。。說個更通俗的,你代碼裏出現過catch(IOException).也出現過SQLExec
抽象方法是非靜態的
我是這樣理解的:抽象類是不能實例化的,即不能被分配內存,而static修飾的方法在類實例化之前就已經別分配了內存,這樣一來矛盾就出現了:抽象類不能被分配內存,而static方法必須被分配內存。所以抽象類中不能有靜態的抽象方法。
java.lang.Object.clone()分析
1.自己的類要用clone則必須覆蓋Object.clone(),或深拷貝,或淺拷貝
且實現Cloneable接口,以作爲標記
2.protected的作用域爲本包和子類
String 字符串常量,經常改變內容的字符串最好不要用 String
StringBuffer 字符串變量(線程安全),用於多任務併發訪問
StringBuilder 字符串變量(非線程安全),單任務訪問時比StringBuffer更有效,字符串生成器
java內部類參數爲final
局部變量的生命週期與內部類不同,直觀上看,若方法訪問結束,變量消失,內部類就無法拿到其傳來的參數了;實際內部類的實現是在其內部構造了一個同類型的成員變量,並在構造方法中將局部變量的值傳給它;之所以設成final的,是爲了合乎邏輯,如上所述,局部變量的改變不會影響內部類中的值。
線程安全:StringBuffer\Enumeration:(HashTable\Vector)
對應於非線程安全的:StringBuilder\Iterator:(HashMap\Collection)