Java 泛型進階細節:類型擦除、通配符、邊界限定與方法重載抉擇
從實戰踩坑到官方文檔:Java 泛型核心細節深度總結 在封裝底層框架時,泛型的某些「隱性規則」常導致編譯報錯或運行時 ClassCastException。本文
ArrayList 源碼深度解析:動態數組擴容、增刪改查與性能優化全指南
Java 集合框架基石:ArrayList 核心源碼全景圖 ArrayList 是 List 接口最常用的實現,底層由 動態數組 支撐。本文系統梳理其 字段定義
ThreadLocal 核心原理深度解析:線程隔離的終極指南
從源碼看 ThreadLocal 如何實現線程級變量隔離 在開源框架代碼中常見 private static ThreadLocal<Boolean>
Java 集合大家族全景圖:List/Set/Map/Queue 體系、核心實現差異與選型指南
一、集合框架總體架構 頂層接口:Collection(單列集合)、Map(雙列鍵值對)。 二、核心體系詳解 1. Collection → List(有序
WebSocket 核心原理深度解析:從 HTTP 握手到全雙工長連接
一、誕生背景:為什麼 HTTP 不夠用? 傳統請求-響應模式面對高並發、實時場景(IM、股票、協同編輯)力不從心。歷代補丁方案各有缺陷: 方案原理缺點 輪詢定
MyEclipse 啟動報錯 Invalid 'log4jConfigLocation' 參數:一鍵修復指南
錯誤現象 java.lang.IllegalArgumentException: Invalid log4jConfigLocation parameter:
Java 亂碼問題終極解決指南:編碼統一三部曲
亂碼本質:編碼不一致 「寫入時用 UTF-8,讀取時用 GBK」→ 亂碼。核心原則:**全鏈路編碼統一**。 三大典型場景與解決方案 1. 文件本身就是亂碼
Java 讀取文件全攻略:按字節讀取的正確姿勢與大文件避坑指南
一、最簡單的「一次性讀完」代碼(適合小文件) File file = new File(fileName); InputStream in = new Fil
Joda-Time 實戰指南:告別 JDK Date/Calendar 的痛苦,擁抱優雅的時間處理
前言:為什麼需要 Joda-Time? JDK Date/Calendar 設計缺陷眾多:可變、線程不安全、API 反人類(月份 0-11)、無時間段計算類。J
Java 生成驗證碼圖片(非二維碼):Servlet 輸出圖流 + 前端點擊刷新完整實現
說明:本文實現的是「圖形驗證碼」,而非二維碼 代碼邏輯:隨機生成 4 位字符,繪製干擾線,輸出 PNG 流,存入 Session,前端 <img>
Maven 央倉太慢?一鍵配置 Spring 官方鏡像加速下載
痛點:中央倉庫下載龜速 Maven 默認從 repo.maven.apache.org 下載依賴,國內訪問極其緩慢、頻繁超時。 解決方案:Spring 官方鏡
基於 Java TCP 協議實現 C/S 架構局域網群聊系統
從零手寫一個基於 TCP 的 Java 群聊 Demo Java java.net 包提供了 ServerSocket(服務端)與 Socket(客戶端)兩大核
Java 集合框架核心筆記(一):Collection 體系、常用方法與迭代器模式
一、集合為何而生? 對象封裝數據,對象多了需存儲。若對象數量不確定,數組固定長度不再適用,集合容器應運而生。 二、集合三大特點 存儲對象(引用)的容器。 長
Java 環境變量完全指南:JAVA_HOME、PATH、CLASSPATH 到底怎麼配?
前言:為什麼要配環境變量? 安裝 JDK 後,系統不知道去哪裡找 java、javac 等命令,也不知道去哪裡加載核心類庫。配置環境變量就是「告訴系統路在何方」
Java 實現 Excel 模板導出:基於 POI + JXLS 的實戰方案
一、準備工作 下載並引入依賴:poi-3.8.jar、jxls-core-1.0.jar。 準備 Excel 模板文件 runRecord.xls,放置於類路
Tomcat 與 Servlet 核心原理:從容器架構到請求處理流程
一、概述:Servlet 標準與容器關係 Web 服務器與 Web 應用交互的標準接口是 Servlet。Web 服務器必須符合 Servlet 規範(即充當
FFmpeg 實戰手冊:ffprobe 核心參數與多媒體流分析全攻略
前言:ffprobe 是什麼? FFmpeg 套件中,ffmpeg 負責轉碼、推流,而 ffprobe 專司多媒體文件探測與信息提取。它能解析封裝格式、流結構、
父進程是 init 就一定不會產生殭屍進程嗎?深入解析 Linux 進程回收機制
前言:一個令人困惑的現場 在線上環境排查問題時,發現一個標記為 Z(殭屍)的進程。直覺告訴我:殺掉它的父進程,讓 init 進程(PID 1)接管並回收。但 p