首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 基礎知識大全(二):從封裝繼承到多線程與 IO

     編輯:Java 綜合教學

Java 基礎知識大全(二):從封裝繼承到多線程與 IO

一、 核心語法與 OOP 基石

  • += 隱含強轉:x += y ≡ x = (T)(x + y)(T 為 x 類型)。
  • 方法重載:同類中方法名相同、參數列表不同;與返回值無關。
  • 封裝:隱藏屬性與實現細節,對外提供公共訪問方式;類、方法本身也是封裝體現。
  • 繼承:提取共性至父類,子類復用;Java 單繼承、多層繼承;子類構造器默認調用 super(),父類無無參構造時子類必須顯式 super(...)。
  • 匿名對象:僅調用一次方法、或作實參傳遞時使用。
  • 重寫 vs 重載:重寫(子父類同簽名)、重載(同類同名不同參數);重載可改返回類型。

二、 static、代碼塊與對象實例化

  • static:隨類加載、優於對象存在、全對象共享、可 類名.靜態成員 調用。
  • 三大代碼塊:
    • 局部代碼塊:方法內 {},限定變量生命週期。
    • 構造代碼塊:類中方法外 {},提取構造器共性代碼,優於構造器執行。
    • 靜態代碼塊:static {},類加載時執行一次。
  • 實例化 8 步驟:加載 .class → 棧分配引用 → 堆分配對象 → 默認初始化 → 顯式初始化 → 構造代碼塊 → 構造器初始化 → 賦值給引用。
  • 子類構造器必先執行父類構造器,因子類可能訪問父類字段,父類數據須優先就緒。

三、 final、多態與抽象

  • final:修飾類(不可繼承)、方法(不可重寫)、變量(常量)。
  • 多態:編譯看左(引用類型),運行看右(對象類型);成員變量編譯/運行均看左;靜態方法編譯/運行均看左(無多態)。
  • 抽象類:含抽象方法;不可實例化;有構造器供子類初始化父類字段;無抽象方法也可限制實例化;abstract 不能與 final/private/static 共存。
  • 接口:全抽象方法(默認 public abstract)、常量(默認 public static final)、無構造器;類與類單繼承、類與接口多實現、接口與接口多繼承;設計理念:抽象類體現 is-a 共性,接口體現 like-a 擴展能力。

四、 內部類與常見面試題

  • 內部類可直接訪問外部類私有成員;外部類需創建內部類對象訪問其成員。
  • 內部類訪問局部變量必須 final:防止數據變更、延長生命週期(JDK 8+ 隱式 final)。
  • 匿名內部類本質:繼承類或實現接口的子類匿名對象。
  • ==:基本類型比值、引用類型比地址;equals() 默認比地址,String 等重寫比內容。
  • String 不可變;StringBuffer 線程安全、效率低;StringBuilder 非線程安全、效率高;兩者 API 兼容。
  • 八大基本類型包裝類:Byte/Short/Integer/Long/Float/Double/Character/Boolean。

五、 集合框架精華

集合底層結構唯一性保證順序特性
HashSet散列表(數組+鏈表/樹)hashCode() 相同 → equals() 比較無序
TreeSet紅黑樹compareTo()/compare() 返回 0自然排序或定製排序
LinkedHashSet鏈表+散列表散列表去重鏈表保證插入順序
  • 泛型:將類型確定推遲至創建對象/調用方法;消除強轉、編譯期發現錯誤;缺點:類型擦除導致運行時無法區分具體泛型參數。
  • Hashtable 線程安全、效率低、不允許 null;HashMap 非線程安全、效率高、允許 null。

六、 異常、遞歸與 IO 流

  • throws(方法簽名拋出類)vs throw(方法體拋出對象);RuntimeException 可不處理,Exception 必須捕獲或拋出。
  • final(修飾符)、finally(異常塊、必執行)、finalize()(Object 方法、GC 調用)。
  • 遞歸必有出口、層數不可過深(棧溢出)、構造器不能遞歸。
  • IO 體系:字節流(InputStream/OutputStream)、字符流(Reader/Writer)、緩衝流(BufferedXxx);flush() 刷新緩衝區對象可繼續用,close() 釋放資源並先刷新。

七、 多線程核心

  • 兩種實現:繼承 Thread、實現 Runnable(推薦,避免單繼承限制)。
  • 生命週期:新建 → 就緒 → 運行 → 阻塞 → 死亡。
  • 安全問題三要素:多線程 + 共享數據 + 多語句操作;解決:同步代碼塊(任意鎖)、同步方法(this 鎖)、Lock(JDK 5+)。
  • sleep() 不釋放鎖、wait() 釋放鎖(需在同步塊中調用)。

八、 網絡與反射

  • 網絡三要素:IP(唯一標識)、端口(應用標識)、協議(通信規則)。
  • 反射:運行態通過 Class 對象操作構造器/字段/方法(含私有);三種獲取 Class:obj.getClass()、Type.class、Class.forName()。

這份總結覆蓋了 Java 基礎進階的高頻知識點,適合面試複習與日常查漏補缺。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved