學習廖雪峯java知識點筆記,原文鏈接廖雪峯JAVA教程
-
我們需要先用javac把Hello.java編譯成字節碼文件Hello.class,然後,用java命令執行這個字節碼文件
-
一個Java源碼只能定義一個public類型的class,並且class名稱和文件名要完全一致。
-
Fina 修飾的爲常量,常量名通常全部大寫。
使用var定義變量,可以少寫變量類型。 -
Java提供了兩種變量類型:基本類型和引用類型
基本類型包括整型,浮點型,布爾型,字符型。
基本類型參數的傳遞,是調用方值的複製。雙方各自的後續修改,互不影響。
引用類型參數的傳遞,調用方的變量,和接收方的參數變量,指向的是同一個對象。雙方任意一方對這個對象的修改,都會影響對方(因爲指向同一個對象嘛)。 -
使用Arrays.toString()可以快速獲取數組內容。
-
命令行參數類型是String[]數組。
可變參數用類型…定義,可變參數相當於數組類型。 -
方法名相同,但各自的參數不同,稱爲方法重載(Overload)。
-
java使用關鍵字extends實現繼承。
繼承有個特點,就是子類無法訪問父類的private字段或者private方法。
用protected修飾的字段可以被子類訪問: -
子類如果定義了一個與父類方法簽名完全相同的方法,被稱爲覆寫(Override)。加上@Override可以讓編譯器幫助檢查是否進行了正確的覆寫。
-
如果一個父類不允許子類對它的某個方法進行覆寫,可以把該方法標記爲final。如果一個類不希望任何其他類繼承自它,那麼可以把這個類本身標記爲final。
-
多態特性
public void runTwice(Person p) {
p.run();
p.run();
}
實際在運行中的時候動態調用任何一種子類及其覆寫的方法。 -
關於抽象方法和抽象類:
通過abstract定義的方法是抽象方法,它只有定義,沒有實現。抽象方法定義了子類必須實現的接口規範。 -
關於接口:
使用interface可以聲明一個接口,就是比抽象類還要抽象的純抽象接口,因爲它連字段都不能有。在接口中,可以定義default方法。 -
一個類只能繼承自另一個類,不能從多個類繼承。但是,一個類可以實現多個interface
-
關於靜態字段和靜態方法:
靜態字段只有一個共享“空間”,所有實例都會共享該字段。
不推薦用 實例變量.靜態字段 去訪問靜態字段;推薦使用 類名.靜態字段 來訪問靜態對象。
調用靜態方法則不需要實例變量,通過類名就可以調用。因爲靜態方法屬於class而不屬於實例,因此,靜態方法內部,無法訪問this變量,也無法訪問實例字段,它只能訪問靜態字段。 -
Java內建的package機制是爲了避免class命名衝突;包沒有父子關係,com.apache和com.apache.abc是不同的包。
-
JDK的核心類使用java.lang包,編譯器會自動導入;