Java 手機號碼驗證:正則表達式實作與常見號段支援
需求背景 表單驗證、註冊流程、短信發送前檢核等場景,皆需確認使用者輸入的手機號碼格式正確。中國大陸手機號碼為 11 位數字,開頭號段隨運營商政策持續擴展。 核
階乘尾部零的個數:1000! 末尾有多少個 0?數學與算法完整解析
問題描述 求 1000! (1000 階乘) 的十進制表示末尾連續有多少個 0? 1000! = 1 × 2 × 3 × ... × 999 × 1000 核
Java 物件序列化與反序列化:預設機制與 Jackson JSON 實戰比較
前言 物件序列化是將記憶體中的物件轉換為位元組流或文字格式,以便持久化儲存或網路傳輸;反序列化則是逆向還原。Java 內建提供預設序列化機制,但輸出為二進位格式
Java Swing 利用 JCheckBox 陣列批量建立核取方塊教學範例
前言 在 Java Swing 開發中,當需要動態產生大量核取方塊時,逐一撰寫程式碼不僅繁瑣,也難以維護。本文示範如何結合 JCheckBox 陣列與 Grid
Java 註解完整指南:內建註解、自訂註解、元註解、反射處理、Spring 實戰、編譯期處理 (APT)
前言 Annotation (註解) 是 JDK 5 引入的元資料機制,已成為現代 Java 框架 (Spring、Hibernate、JUnit、MapStr
Java 靜態工廠方法替代建構子:優缺點、命名慣例、實戰模式、Spring 整合
前言 Effective Java 第 1 條建議:「考慮用靜態工廠方法取代建構子」。本文系統整理優缺點、標準命名慣例、六大實戰模式、Spring 整合技巧、效
Java 解決河內塔問題完整教學:遞迴邏輯、步驟數學證明、動畫視覺化、疊代非遞迴實作
前言 河內塔是經典遞迴教學案例。本文提供:標準遞迴解法、數學歸納法證明最少步驟 2^n - 1、JavaFX 動畫視覺化、疊代非遞迴實作 (避免堆疊溢位)、泛型
Java 正則表達式提取 URL Host 完整指南:標準庫、Guava、URI 比較
前言 從 URL 字串提取 Host (主機名) 是常見需求。本文比較四種做法:java.net.URI (標準、最穩健)、java.net.URL (舊)、正
Java Swing 類比時鐘完整實作:雙緩衝、平滑秒針、系統時間同步、自訂外觀
前言 經典類比時鐘是圖形程式設計入門佳作。本文提供生產級 AnalogClock:雙緩衝無閃爍、平滑秒針動畫 (每秒重繪)、時/分/秒針幾何計算、系統時間同步、
Java DES 加密解密完整指南:CBC/PKCS5Padding、Base64、金鑰管理、效能優化
前言 DES (Data Encryption Standard) 已被 AES 取代,但老系統、硬體裝置、支付閘道仍大量使用。本文提供生產級 DesUtil:
Java 發送 HTTP 請求完整指南:HttpURLConnection、HttpClient、OkHttp 三大方案比較
前言 Java 發送 HTTP 請求有三大主流方案:JDK 內建 HttpURLConnection (舊)、JDK 11+ HttpClient (現代標準)
Java 策略模式完整實戰:圖片儲存格式動態切換、Spring 整合、避免 if-else
前言 策略模式將算法族群封裝為可互換的策略物件,讓客戶端在執行期動態切換行為,徹底消除冗長的 if-else/switch。本文以「圖片儲存格式選擇」為例,完整
Java 指定編碼讀寫檔案工具類:UTF-8/GBK/Big5 統一處理、自動建立目錄、大檔案串流
前言 檔案編碼不一致是中文亂碼首因。本文提供一個生產級 FileEncodingUtil,統一解決:指定編碼讀寫、自動建立父目錄、大檔案分行串流、編碼偵測整合、
Java HttpClient 發送 POST 請求完整指南:同步/非同步、JSON、表單、檔案上傳、超時重試
前言 JDK 11 將 java.net.http.HttpClient 納入標準庫,支援 HTTP/2、WebSocket、非同步、反應式串流,取代舊版 Ht
Java Swing 按鈕陣列實作計算機介面完整教學
前言 Swing 雖屬舊世代 GUI 框架,但輕量、跨平台、無額外依賴,適合教學與中小型桌面工具。本文以「按鈕二維陣列 + GridLayout」快速建構計算機
Java 陣列排序演算法實作:快速排序、氣泡排序、選擇排序完整教學
前言 排序演算法是資料結構基石。本文以 Java 實作三種經典排序:快速排序 (分治、平均 O(n log n))、氣泡排序 (教學用、O(n²))、選擇排序
Java 複製與移動檔案的完整指南:NIO.2、Stream、Apache Commons IO 比較
前言 檔案複製/移動是基礎操作,但細節決定成敗:大檔案效能、屬性保留、原子性、跨檔案系統、符號連結處理。本文系統比較三種主流方式:Files.copy/move