更新時間:2022-06-07 11:12:04 來源:動力節點 瀏覽1307次
動力節點小編來給大家進行Java基礎教程部分知識點總結。
基本類型:基本類型的變量“持有”一個值;引用類型:引用類型的變量“指向”一個對象。
基本數據類型是CPU可以直接進行運算的類型。Java中的基本數據類型有:
整數類型:byte short int long
浮點類型:浮點雙
字符類型:字符
布爾類型:布爾
==判斷兩個變量或實例是否指向同一個內存空間,equals判斷兩個變量或實例是否指向同一個內存空間
==比較內存地址并等于內容
跳出當前循環,繼續提前結束這個循環,繼續執行下一個循環。
面向對象
面向對象編程是一種通過對象的方式將現實世界映射到計算機模型的編程方法。
類是一個對象模板,它定義了如何創建一個實例。Instance是一個對象實例,是根據類創建的。
基本類型的參數傳遞是指調用者的值的拷貝,雙方后續修改互不影響;引用類型的參數傳遞指的是同一個對象,任何一方修改該對象都會影響另一方。
構造函數用于初始化實例。如果一個類沒有定義構造函數,編譯器會自動為我們生成一個默認構造函數。如果定義了構造函數,編譯器將不再自動創建默認構造函數。注意:在Java中,對于任何類的構造函數,第一行語句必須是調用父類的構造函數。如果父類的構造函數沒有顯式調用,編譯器會自動為我們添加一個super()。
方法名相同,但參數不同,稱為方法重載。方法重載的目的是功能相似的方法使用相同的名稱,這樣更容易記憶,更容易調用。
在繼承關系中,如果子類定義了與父方法簽名相同的方法,則稱為override。
繼承是面向對象編程中一種非常強大的機制,可以重用代碼。Java只允許一個類繼承一個類,所以一個類只有一個父類。只有對象是特殊的。它沒有父類。子類不能訪問父類的私有字段或私有方法。子類不會繼承父類的任何構造方法。子類的默認構造方法是編譯器自動生成的,不是繼承的。
多態性意味著對于一種方法調用,它執行的真正方法取決于運行時方法的實際類型。多態有一個非常強大的功能,就是在不修改父類的代碼的情況下,允許添加更多類型的子類來實現功能擴展。
用 abstract 裝飾的類是抽象類。無法實例化抽象類。將方法聲明為抽象意味著它是一個抽象方法,并且不實現任何方法語句。抽象類本身被設計為僅用于繼承。抽象類可以強制子類實現其定義的抽象方法,否則編譯會報錯。因此,一個抽象的方法實際上相當于定義一個“規范”。
非抽象方法可以定義在抽象類中。
如果抽象類沒有字段且所有方法都是抽象方法,則可以將其重寫為接口。所謂接口就是比抽象類更抽象的純抽象接口,因為它甚至不能有字段。因為接口定義的所有方法默認都是public abstract,所以這兩個修飾符不需要寫出來。
一個類可以實現多個接口。
在接口中可以定義默認方法,實現類不能覆蓋默認方法。默認方法的目的是當你需要向接口添加方法時,它涉及到修改所有子類。如果添加了默認方法,那么子類不需要完全修改,只需要在需要重寫的地方重寫新方法。
final修飾類可以防止繼承;
final修飾的方法可以防止被重寫;
最終的裝飾屬性必須在創建對象時初始化,以后不能修改。
靜態修飾的成員變量和方法,從屬于類
公共變量和方法從屬于對象
靜態方法不能調用非靜態成員,編譯會報錯
實例對象之所以可以訪問靜態字段,只是因為編譯器可以根據實例類型自動將其轉換為類名和靜態字段。建議使用類名訪問靜態字段。
方法中定義的變量稱為局部變量,局部變量的作用域從變量聲明開始,到對應的塊結束。方法參數也是局部變量。
字符串由字符串內部的 char [] 數組表示,
Java 字符串的一個重要特性是它們是不可變的。
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "hello";
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
從比較結果來看,兩者都是正確的。這是因為java編譯器在編譯時會自動將所有相同的字符串作為對象放入常量池中。當然,S1 和 S2 的引用是相同的。
所以這個 = = 比較返回 true 是一個巧合。換一種方式, = = 比較會失敗:
public class Main {
public static void main(String[] args) {
String s1 = "hello";
String s2 = "HELLO".toLowerCase();
System.out.println(s1 == s2);
System.out.println(s1.equals(s2));
}
}
為什么是真假?原因是 to lowercase(),它將 S2 指向一個變為小寫的字符串。
StringBuilder 是一個變量對象,可以預先分配緩沖區,這樣在 StringBuilder 中添加字符時,不會創建新的臨時對象。
StringBuffer 是 Java 早期 StringBuilder 的線程安全版本。它通過同步保證了多線程操作StringBuffer是安全的,但是同步會導致執行速度的下降。
自動裝箱和拆箱只發生在編譯階段,以減少代碼編寫;
裝箱和拆箱會影響代碼的執行效率,因為編譯出來的類代碼嚴格區分了基本類型和引用類型。此外,在自動拆箱過程中可能會報告 NullPointerException。
Java使用enum定義枚舉類型,編譯器編譯為final class XXX extends enum { }
enum枚舉類型是引用類型;
每個枚舉類型的常量在JVM中只有一個唯一的實例,所以可以直接用==來比較。
定義的枚舉類型總是繼承自java.lang.enum,不能被繼承;
只能定義 enum 的實例,但不能通過 new 運算符創建 enum 的實例;
Throwable是異常系統的根,繼承自object。Throwable 有兩個系統:錯誤和異常。Error表示嚴重錯誤,程序一般無能為力。異常是運行時錯誤,可以被捕獲和處理。
Java的反射意味著程序可以在運行時獲取一個對象的所有信息。因為JVM會為每個加載的類創建一個對應的類實例,并在實例中保存該類的所有信息,包括類名、包名、父類、實現的接口、所有方法、字段等,如果我們得到一個類實例,我們可以通過這個類實例獲取該實例對應的類的所有信息。這種通過類實例獲取類信息的方法稱為反射。
注釋是一種用作注釋的“元數據”。注解的本質是一個繼承注解接口的接口。
泛型的本質是對類型進行參數化(不創建新類型,通過泛型指定的不同類型來控制參數具體限制的類型)。也就是說,在使用泛型的過程中,將操作的數據類型指定為參數。這種參數類型可以用在類、接口和方法中,分別稱為泛型類、泛型接口和泛型方法。
以上就是關于“Java基礎部分知識點總結”的介紹,大家如果想了解更多相關知識,可以關注一下動力節點的Java在線學習,里面的課程內容從入門到精通,細致全面,很適合沒有基礎的小伙伴學習,希望對大家能夠有所幫助。
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習