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

Java 學習筆記:佈局管理器、抽象類接口、繼承多態、正則表達式、數組工具類

     編輯:Java 相關知識

Java 核心語法與 Swing 佈局、集合工具、正則表達式綜合筆記,覆蓋佈局管理器選型、抽象類與接口區別、繼承多態規則、正則語法速查、Arrays 工具類常用操作。

一、Swing 佈局管理器

管理器特點適用場景
FlowLayout左到右、上到下順序排列,換行自動換行簡單表單、工具欄、按鈕組
GridLayout指定行列數,組件等分網格,大小一致計算器鍵盤、棋盤、表格式表單
BorderLayout五大區域,東西區域僅水平拉伸,南北僅垂直拉伸,中間雙向填充主窗口結構:頂部導航、左側菜單、中間內容、底部狀態欄

進階:GridBagLayout(最靈活、最複雜)、BoxLayout、CardLayout(向導式界面)、GroupLayout(IDE 可視化設計首選)。

二、類與對象核心規則

  • main 為 static,直接調用的其他方法必須也是 static。
  • main(String[] args):args[0]~args[n] 為命令行參數,args.length 獲取個數。
  • 包裝類:BigInteger bi = new BigInteger("2"),字符串構造器參數必須帶引號。
  • 對象比較:
    • ==:比較引用地址(基本類型比值)。
    • equals():比較業務語義相等,需類覆寫。
  • 可見性修飾符:
    • private:僅本類可見
    • protected:同包 + 子類可見
    • public:全局可見
    • default(包私有):僅同包可見
  • 基本類型包裝對象:int → Integer, boolean → Boolean,自動裝箱/拆箱(Java 5+)。

三、抽象類與接口

特性抽象類接口
關鍵字abstract classinterface
方法可有抽象方法、具體方法、構造器隱式 public abstract(Java 8 前),Java 8+ 可有 default/static 方法
字段任意修飾符隱式 public static final(常量)
繼承/實現extends(單繼承)implements(多實現)
實例化不可直接 new,只能 new 子類不可實例化,Java 8+ 可通過默認方法提供實現
設計意圖「是一種」關係,共享代碼與狀態「能做什麼」契約,定義行為規範

四、繼承與多態

  • 覆寫權限:只能擴大不能縮小(父 protected → 子 public)。
  • 實例化順序:父類構造器 → 父類字段初始化 → 子類構造器 → 子類字段初始化 → 子類構造器體。
  • Object 根類:clone(), finalize(), equals(), toString() 等通用方法。
  • 類型轉換:
    • 向上轉型(子→父):自動,安全。
    • 向下轉型(父→子):強制轉換,需先 instanceof 判斷避免 ClassCastException。
  • 不定長參數:public static int add(int... a) 等價 int[] a,調用可傳 0-N 個參數。

五、正則表達式語法速查

語法含義示例匹配
A?A 出現 0 或 1 次"", "A"
A*A 出現 0 或多次"", "A", "AAA"
A+A 出現 1 或多次"A", "AAA"
A{2}A 正好 2 次"AA"
A{2,}A 至少 2 次"AA", "AAAA"
A{2,4}A 出現 2-4 次"AA", "AAA", "AAAA"
[abc]a 或 b 或 c"a", "b", "c"
[^abc]非 a/b/c"d", "1", "@"
[a-r]a 到 r 任一字符"m", "c"
[a-zA-Z]任意英文字母"Z", "q"
[a-c[e-g]]並集:a-c 或 e-g"b", "f"
[a-o&&[def]]交集:a-o 中的 d/e/f"d", "e", "f"

Java 代碼中使用:String regex = "\\d{3}-\\d{8}"; // 雙重轉義,Pattern.compile(regex).matcher(str).matches()。

六、Arrays 工具類常用操作

// 初始化
int[] arr = new int[] {1, 22, 3};

// 排序
Arrays.sort(arr);                    // 全量升序
Arrays.sort(arr, from, to);          // 區間排序

// 填充
Arrays.fill(arr, 99);                // 全量填 99
Arrays.fill(arr, from, to, 99);      // 區間填 99

// 複制
int[] copy = Arrays.copyOf(arr, 5);       // 複制前 5 個(不足補 0/截斷)
int[] copy = Arrays.copyOfRange(arr, 1, 4); // 複制 [1,4) 區間

// 查找(前提:數組已排序)
int idx = Arrays.binarySearch(arr, key);           // 全量查找
int idx = Arrays.binarySearch(arr, from, to, key); // 區間查找
// 返回索引(≥0 找到),未找到返回 (-(插入點) - 1)

七、Java 代碼中正則實戰

String text = "聯系電話:138-1234-5678,郵箱:test@example.com";

// 1. 提取手機號
Pattern phonePat = Pattern.compile("1[3-9]\\d{9}");
Matcher m = phonePat.matcher(text);
while (m.find()) System.out.println(m.group()); // 13812345678

// 2. 分割
String[] parts = text.split("[,。:]"); // 多字符分割

// 3. 替換
String masked = text.replaceAll("\\d{4}(?=\\d{4})", "****"); // 手機中間四位掩碼

這些語法是 Java 日常開發的「詞彙庫」,建議打印速查表貼在工位,遇到不熟悉的正則/Arrays 方法快速查閱,漸漸內化為直覺。

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