各位大神對Java本質的一些的理解
阿新 • • 發佈:2019-01-02
關鍵字final:
final變數的定義本身並不複雜,就是變數一經初始化就不能再指向其它物件(並不是不可以改變值)。(原文連結)
model證明被final修飾可以改變值;
因為String是常量,不可以改變值,呼叫replace()方法後,返回一個新引用,於是str1指向新引用;
str2被final修飾後,不能改變引用地址,所以重新指向時報錯了。
關鍵字static:
被static修飾的成員變數和成員方法獨立於該類的任何物件。也就是說,它不依賴類特定的例項,被類的所有例項共享。
實際上你需要搞明白,private是訪問許可權限定,static表示不要例項化就可以使用,這樣就容易理解多了。(原文連結)
關鍵字instanceof:
A instanceof B: 用instancof來測試A是否是B(類/介面)的一個例項。(原文連結)關鍵字synchronized:
synchronized鎖住的是括號裡的物件,而不是程式碼。(原文連結)Java泛型:
泛型的使用介紹及格式總結。(原文連結)
Java列舉:
Java轉型:
向上轉型:提高了程式碼的可擴充套件性,但是父類的引用會捨棄一些子類的方法。(轉型物件優先呼叫子類方法)
向下轉型:提高程式碼的可擴充套件性之後,繼續能用子類捨棄的方法。(原文連結)
Java許可權:
private 本類friendly 本包
proteced 本包、子類
public 所有
介面:
抽象方法全域性變數
抽象類:
抽象方法:無方法體,用abstract修飾包含一個抽象方法的類/屬性的類必須是抽象類
抽象方法只能宣告,不能被例項化
如果繼承抽象類(子類不是抽象類),必須實現其所有抽象方法
包含:抽象方法、全域性變數、普通方法、普通變數