1. 程式人生 > 其它 >Java常見知識點總結

Java常見知識點總結

1 過載 && 重寫

過載發生在同一個類中方法名必須相同,引數型別不同、個數不同、順序不同,方法返回值和訪問修飾符可以不同,發生在編譯時。

重寫發生在父子類中方法名、引數列表必須相同,返回值範圍小於等於父類,丟擲的異常範圍小於等於父類,訪問修飾符範圍大於等於父類;如果父類方法訪問修飾符為 private 則子類就不能重寫該方法。

2 初始化順序

靜態屬性初始化 靜態程式碼初始化 普通屬性初始化 普通方法初始化 建構函式初始化

3 可變引數列表

4 Java 面向物件程式設計三大特性: 封裝 繼承 多型

封裝

封裝把一個物件的屬性私有化,同時提供一些可以被外界訪問的屬性的方法,如果屬性不想被外界訪問,我們大可不必提供方法給外界訪問。但是如果一個類沒有提供給外界訪問的方法,那麼這個類也沒有什麼意義了。

繼承

繼承是使用已存在的類的定義作為基礎建立新類的技術,新類的定義可以增加新的資料或新的功能,也可以用父類的功能,但不能選擇性地繼承父類。通過使用繼承我們能夠非常方便地複用以前的程式碼。

關於繼承如下 3 點請記住:

  1. 子類擁有父類非 private 的屬性和方法。
  2. 子類可以擁有自己屬性和方法,即子類可以對父類進行擴充套件。
  3. 子類可以用自己的方式實現父類的方法。

多型

所謂多型就是指程式中定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即一個引用變數倒底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在由程式執行期間才能決定。
在 Java 中有兩種形式可以實現多型:

繼承(多個子類對同一方法的重寫)和介面(實現介面並覆蓋介面中同一方法)。

5 異常

常見的Exception

6 Java記憶體模型

7 集合

8 泛型

Java 泛型(generics)是 JDK 5 中引入的一個新特性, 泛型提供了編譯時型別安全檢測機制,該機制允許程式設計師在編譯時檢測到非法的型別。

泛型的本質是引數化型別,也就是說所操作的資料型別被指定為一個引數。

泛型類

泛型類加到類上面,表示這個類的型別

常見的集合類都是泛型類

泛型介面

泛型方法

泛型萬用字元

上界萬用字元:<? extends ClassType>

下界萬用字元:<? super ClassType>

9 反射

Java的反射(reflection)機制是指在程式的執行狀態中,可以構造任意一個類的物件,可以瞭解任意一個物件所屬的類,可以瞭解任意一個類的成員變數和方法,可以呼叫任意一個物件的屬性和方法。這種動態獲取程式資訊以及動態呼叫物件的功能稱為Java語言的反射機制。反射被視為動態語言的關鍵。

Java反射機制主要提供以下幾種功能

  • 在執行時判斷任意一個物件所屬的類
  • 在執行時構造任意一個類的物件
  • 在執行時判斷任意一個類所有的成員變數和方法
  • 在執行時呼叫任意一個物件的方法

Class類

Filed類

Method類

ClassLoader類

10 列舉

11 I/0

根據操作物件區分

12 介面和抽象類的區別

  • 一個類可以實現多個介面,單最多隻能繼承一個抽象類
  • 抽象類可以包含具體方法,介面的所有方法都是抽象方法
  • 抽象類可以宣告和使用欄位;介面則不能,但可以建立靜態的final常量
  • 抽象類的方法可以是public、private、protected和default,介面的方法都是public
  • 抽象類可以定義建構函式,介面不可以

13 == 與 equals

== : 判斷兩個物件的地址是否相等。即,判斷兩個物件是不是同一個物件(基礎資料型別比較的是值,引用資料型別比較的是記憶體地址)

equals():判斷兩個物件是否相等。分為兩種情況

  • 情況1:類沒有重寫equals()方法。則通過equals()比較該類的兩個物件時,等價於通過“==”比較兩個物件。
  • 情況2:類重寫了equals()方法。則按照重寫的邏輯比較該類的兩個物件。