Java Socket 編程實戰(一):TCP 回聲服務端與客戶端基礎實現
前言 TCP(Transmission Control Protocol)提供面向連接、可靠、有序的字節流服務,是絕大多數業務協議(HTTP、MySQL、Red
MyBatis 批量插入 Oracle 實戰:foreach 拼裝 UNION ALL 方案
前言 Oracle 不支持 MySQL 的 VALUES (...), (...), ... 多行插入語法。MyBatis 批量插入 Oracle 的標準做法是
JavaMail 發送郵件進階實戰:從簡單文本到批量異步發送框架
前言 JavaMail API 功能強大但底層 API 繁瑣。本文遞進展示:簡單文本 → 多收件人/抄送/密送 → 附件 → HTML 郵件 → 封裝配置類 →
Hibernate 雙向一對一映射全解析:主鍵關聯 vs 外鍵關聯
前言 Hibernate 中雙向一對一關聯分為主鍵關聯(共享主鍵)與外鍵關聯(獨立主鍵 + 唯一外鍵)兩種映射策略。本文以「人-身份證」經典模型為例,詳細對比兩
Java 文件上傳實戰:Spring MVC 手動解析 vs MultipartFile 封裝對比
前言 文件上傳是 Web 開發高頻需求。Spring MVC 提供 MultipartFile 封裝簡化開發,但理解底層 Commons FileUpload
RxJava 操作符深度解析:從 map/flatMap 到複雜流變換鏈
前言 RxJava 的威力在於操作符鏈:將數據流經過聲明式變換、過濾、合併、聚合,最終交給 Subscriber。本文以搜索建議、標題抓取為業務場景,層層遞進講
Java Socket 編程實戰(二):UDP 通信基礎與超時重傳客戶端
前言 UDP(User Datagram Protocol)無連接、不可靠、有邊界,適合即時性要求高、容忍丟包場景(視頻流、DNS、遊戲同步)。本文給出完整的
Java 多态扩展性实战:通过两个经典案例深度解析
多态与扩展性:面向对象设计的核心价值 多态允许父类引用指向子类对象,结合接口或抽象类,可将变化点隔离,实现“对修改关闭,对扩展开放”(OCP)。以下两个案例展示
Java ByteArray 輸入輸出流詳解:內存字節數組的高效讀寫
前言 ByteArrayInputStream 與 ByteArrayOutputStream 將字節數組作為內存流來源/目的地,實現「內存↔流」零拷貝轉換,廣
Java BigDecimal 精確計算完全指南:構造器陷阱、運算規則與整數判斷
前言 浮點數 float/double 因二進制無法精確表示十進制小數(如 0.1),導致金融、計量等領域計算誤差。BigDecimal 以「不可變、任意精度、
Java 多線程實戰:繼承 Thread 類實現年份日誌並發分析
前言 繼承 Thread 類是 Java 多線程編程的入門方式。本文通過一個「年份點擊日誌並發統計」的實戰案例,展示如何拆分任務、啟動線程、等待完成並聚合結果,
JavaMail 發送郵件實戰避坑:從未知主機到 SSL 端口誤用
前言 JavaMail 發送郵件看似簡單,實則暗藏 DNS 解析、端口協議、SSL/TLS 協商等網絡層陷阱。本文記錄一次從「Unknown SMTP host
RxJava 核心結構與六大實戰場景速覽
前言 RxJava 以「觀察者模式 + 操作符鏈」重塑異步編程體驗。本文先拆解 Observable.create/subscribe 底層流程,再列舉 And
Java synchronized 關鍵字實戰:同步方法與塊的線程安全演示
前言 synchronized 是 Java 並發編程的基石關鍵字,基於對象監視器實現互斥同步。本文通過銀行賬戶轉賬模擬,演示同步方法、靜態同步與非靜態同步的鎖
Spring 事務配置五大方式全解析:從 XML 到全註解演進
前言 Spring 事務管理的核心三要素——DataSource、TransactionManager、代理機制——前兩者隨數據訪問技術變化,後者決定事務攔截粒
Java final 關鍵字使用注意事項:從多態陷阱到內存模型
前言 final 看似簡單,實則暗藏多態陷阱、內存可見性保證、編譯期常量內聯等深層機制。本文針對實戰中易踩的坑,結合字節碼與 JMM(Java 內存模型)視角,
深度解析 Java final 關鍵字:類、方法與變數的完整指南
前言 final 是 Java 中語義最豐富、影響面最廣的關鍵字之一。它可修飾類、方法、變數(含參數),分別對應繼承鎖定、多態禁用、引用不可變三大核心語義。本文
Java static 靜態變數初始化完整解析:從基礎規則到複雜場景
前言 在 Java 程式設計中,static 關鍵字修飾的靜態變數初始化順序常讓開發者感到困惑。本文將從簡單規則切入,逐步深入到複雜的交叉引用場景,並結合經典代