1. 程式人生 > >各位大神對Java本質的一些的理解

各位大神對Java本質的一些的理解

關鍵字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修飾
包含一個抽象方法的類/屬性的類必須是抽象類
抽象方法只能宣告,不能被例項化
如果繼承抽象類(子類不是抽象類),必須實現其所有抽象方法
包含:抽象方法、全域性變數、普通方法、普通變數