Feb 11 2026
煙沙九洲 -
MyBatis XML 裏<![CDATA[ ]]>的使用
今天我們來聊聊MyBatis XML 文件裏的![CDATA[ ]] ,我依稀記得我第一次看到![CDATA[ ]],心想,這是個啥啊?
首先我們要明確:![CDATA[ ]] 不是 MyBatis 的專屬語法,而是 XML 的原生語法(全稱 Character Data,字符數據)。
XML 解析器對某些特殊字符(比如 、、、'、" 等)進行解析的時候,可能會將這些特殊字符 誤判,比如 將 識
後端
Jan 20 2026
煙沙九洲 -
為什麼 IO 流通常只能被讀取一次
今天我們來一起探討下為什麼 IO 流通常只能被讀取一次?
我為什麼會發出這個疑問呢?是因為我研究Web開發中的一個問題時,HTTP請求體在 Filter(過濾器)處被讀取了之後,在 Controller(控制層)就讀不到值了,使用 @RequestBody 的時候。
無論是字節流(InputStream / OutputStream)還是字符流(Reader / Writer),所有基於流的讀取操
後端
Jan 08 2026
煙沙九洲 -
JVM 堆內存分代
今天我們一起來聊一聊 JVM 堆內存。
Java Heap(堆內存)由 Young Generation(新生代,約佔 1/3)和Old Generation(老年代,約佔 2/3 )組成。
Young Generation 又由Eden Space(伊甸園區,佔新生代 80%)、Survivor Space 0(倖存者區0,佔新生代 10%)和 Survivor Space 1(倖存者區1,
後端
Dec 29 2025
煙沙九洲 -
Java 哪些情況會導致內存泄漏
今天我們來一起聊一聊有哪些情況會導致內存泄漏。
什麼是 內存泄漏 呢?
內存泄漏 是指對象 已經不再被程序使用,但因為某些原因 無法被垃圾回收器回收,長期佔用內存,最終可能引發OOM(OutOfMemoryError)。
接下來我們看一下常見的幾類內存泄漏場景。
1、生命週期長的集合
將對象放入 靜態 或生命週期很長的集合(如 public static ListObject list = ne
後端
Dec 09 2025
煙沙九洲 -
MySQL 篩選條件放 ON 後 vs 放 WHERE 後
今天我們來講講數據庫篩選條件放 ON 後和放 WHERE 後的區別。
ON 決定如何 "連接" 表,WHERE 決定連接後 "顯示" 哪些行。 這個根本區別導致了在 LEFT JOIN / RIGHT JOIN 外連接中,條件放置位置會產生巨大影響;而在 INNER JOIN 中,效果通常等價。
ON 條件匹配被驅動表的行,生成 "臨時關聯結果集"。LEFT JOIN 會保留 驅動表所有行,匹配不
數據庫