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

JavaEE 基礎知識回顧:OO、序列化、排序與常見面試題

     編輯:Java 綜合教學

JavaEE 基礎知識回顧:OO、序列化、排序與常見面試題

本文匯總 Java 面向對象核心概念、序列化機制、八大排序算法分類及經典面試題,適合快速查漏補缺。

1. super() vs this()

  • super():調用父類構造器,必須在子類構造器首行,受繼承規則約束;
  • this():調用本類其他構造器,同樣首行;
  • 父類無無參構造時,子類必須 顯式 super(...)。

2. 訪問修飾符作用域

修飾符同類同包子類(異包)非子類(異包)
public✓✓✓✓
protected✓✓✓✗
default✓✓✗✗
private✓✗✗✗

3. 事件委托與垃圾回收

  • 事件委托:事件源 → 事件對象 → 監聽器處理;
  • GC:不可達對象(無引用或置 null)由 JVM 自動回收,不可強制執行。

4. Java 序列化

  • 實現 Serializable 標記接口;
  • ObjectOutputStream.writeObject(obj) 持久化/網絡傳輸;
  • ObjectInputStream.readObject() 反序列化;
  • transient 字段不參與序列化。

5. .java 文件多類限制

  • 可包含多個非內部類;
  • 僅允許 一個 public 類,且類名必須與文件名一致。

6. final 關鍵字特點

  • final 變量:基本類型值不變,引用類型地址不變;
  • final 方法:不可重寫;
  • final 類:不可繼承。

7. 八大排序算法分類與 Java 實現

  1. 插入排序:直接插入、希爾排序
  2. 交換排序:冒泡、快速排序
  3. 選擇排序:直接選擇、堆排序
  4. 歸並排序
  5. 分配排序:箱排序、基數排序

冒泡排序

int[] arr = {1,8,9,3,2,5,6,4,12};
for (int i=0; i<arr.length; i++)
    for (int j=0; j<arr.length-1-i; j++)
        if (arr[j] < arr[j+1]) { swap(arr,j,j+1); }

選擇排序

for (int i=0; i<arr.length-1; i++)
    for (int j=i+1; j<arr.length; j++)
        if (arr[i] > arr[j]) { swap(arr,i,j); }

插入單個元素到有序數組

int[] arr = {1,5,8,10,15,19,34,60};
int num = scanner.nextInt();
int idx = Arrays.binarySearch(arr, num);
if (idx < 0) idx = -idx - 1;
// 移動元素、插入...
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved