Nov 06 2025
北冥有隻魚 -
JDK 新特性學習筆記之模塊系統
有兩條小魚快樂地遊着,碰到一條老魚從對面游過來。老魚向他們點頭問好:「早上好啊小夥子們,今天的水怎麼樣?」兩條小魚接着遊了一會兒,突然停了下來,一臉懵逼地看着對方:水是個什麼東西?
習以為常的就是水
模塊系統是JDK 9的特性,後面的JavaFX學習筆記都會基於JDK 11,甚至更高版本。同時這個特性也是我比較感興趣的,進一步強化了Java的封裝能力。
回顧Java的特性
我想起剛畢業找
JAVA
,
模塊化開發
Nov 05 2025
北冥有隻魚 -
冪等設計論之動機及其實現
每個清晨應該都從思考開始,從思考開始會讓我的腦袋更清晰一些。這是一個系列,先是冪等然後是限流。
從一個下單場景出發
讓我們想象這麼一個場景,現在我有一個表單,也就是我們要創建某條數據,這個表單可以是創建一條訂單, 像下面這樣:
一般來説我們下單結束之後可以選擇讓頁面跳轉到訂單詳情頁面上,但是呢,不巧的是由於客户的網絡比較慢,第一個請求發出去的時候,大致上需要等待兩秒的時間。這個時候用户顯然有點不
架構設計
Nov 04 2025
北冥有隻魚 -
且談軟件架構(二) 模塊化與MVC
前言
我一貫不喜歡手冊式的文章,就告訴你一些定律、經驗,我更願意完整的告訴我的經驗,我的理論是如何得出的,讀我的文章,就好像在和我進行交談,本篇可以認為是經驗之談,所謂經驗不是定理,就是這些經驗部分具備普適性,部分不具備普適性,具體情況要具體分析。本身本篇的標題是從MVC走向DDD,主要還是在掘金看到了轉轉技術團隊的《轉轉價格系統DDD實踐》這篇文章,其中提到:
在使用傳統的mvc模式下,我們往往
模塊化
,
mvc
Oct 09 2025
北冥有隻魚 -
解鎖網絡性能優化利器HTTP/2C
我總要言説一些東西,因為我的心始終在喋喋不休。
前言
HTTP的發展現狀
最近腦海裏面始終活躍着一些想法,一部分是對過去錯誤認知的糾正,比如HTTP/2。在《HTTP學習筆記(三) HTTP/2》,這裏已經提過了,HTTP 1.0的性能缺點是每一個連接都對應一個TCP連接,到HTTP 1.1對這個問題進行了解決,也就是keep-alive和流水線,所謂keep-alive, 也就是説客户端和服務端
http-2
,
後端
Apr 13 2024
北冥有隻魚 -
我們來聊聊HashMap吧
回憶起HashMap
概述HashMap
説到HashMap我腦中復現出下面這一個圖:
也就是hash算法、數組、鏈表、紅黑樹,我放入的key-value,根據hash算法會計算出來應該放置到數組的哪個位置上,如果出現了hash衝突,也就是hash算法映射出來的下標是一個,但是使用equals方法判斷不相等,那麼也就是出現了hash衝突,就會數組對應的位置形成鏈表,鏈表大於8個之後,轉為紅黑樹。
hashmap
Jan 01 2024
北冥有隻魚 -
用Java來實現BIO和NIO模型的HTTP服務器(二) NIO的實現
翻了一下(一)發現整體還是不大好, 這裏重新再梳理一下
前言
這是一個系列的文章,按照規劃是用Java標準庫、Netty來實現一個非常簡單的HTTP服務器,HTTP服務器我們可以使用Java標準庫提供的api,實現BIO、NIO模型的HTTP服務器,然後再用Netty實現,前一篇我們寫的類在這一篇還可以用到,讓我們回憶一下上一篇我們講了什麼,我們回顧了通信的發展史,從最開始的點對點鏈路,到總線鏈路
JAVA
,
nio
Aug 06 2023
北冥有隻魚 -
HashMap的0.75可能只是一個經驗值
前言
還是要面對HashMap的,這是個高頻面試點,以前本身想着一口氣講投HashMap的,但是一口氣講投HashMap想來非常消耗肺活量,篇幅也讓人生畏,所以將其分拆為幾篇,每篇是獨立的主題,最後又將主題合併起來。本篇就來看HashMap, 看的就是HashMap的構造函數:
static final float DEFAULT_LOAD_FACTOR = 0.75f;
public HashM
hashmap
,
JAVA
Jun 23 2023
北冥有隻魚 -
HTTP/2.0的二進制是什麼?
這篇純粹滿足自己的好奇心
我好像是一個在海邊玩耍的孩子,不時為拾到比通常更光滑的石子或更美麗的 貝殼而歡欣鼓舞,而展現在我面前的是完全未探明的真理之海。牛頓
寫本文的時候,想起高中物理課本的一句話:
我好像是一個在海邊玩耍的孩子,不時為拾到比通常更光滑的石子或更美麗的貝殼而歡欣鼓舞,而展現在我面前的是完全未探明的真理之海。
那個時候不懂這句話,忙於刷分,如今純粹是為了自己的好奇心而探究一些
http-2
Mar 26 2023
北冥有隻魚 -
反向代理學習筆記(一) Nginx與反向代理緒論
本來是隻想學習Nginx的,但是想來只學Nginx學過來有些狹窄,因為現在反向代理服務器
什麼是代理?
作為一個滬漂程序員,聽到代理這個詞,我下意識的想到了中介,現在在上海已經很少能找到房東看房子了,基本上都是從中介那裏看房,從這個角度來説中介代理了房東的部分職責,帶你看房。在漢語詞典中也是這麼闡釋的,待他人處理事務。那我們給代理前面加上正向這個詞呢,這也就成為了計算機領域內的專有名詞,正向代理。
Nginx
,
反向代理
Mar 10 2023
北冥有隻魚 -
異步Servlet學習筆記(一)
兩週沒更新了,感覺不寫點什麼,有點不舒服的感覺。
前言
回憶一下學Java的歷程,當時是看JavaSE(基本語法、線程、泛型),然後是JavaEE,JavaEE也基本就是圍繞着Servlet的使用、JSP、JDBC來學習,當時看的是B站up主顏羣的教學視頻:
JavaWeb視頻教程(JSP/Servlet/上傳/下載/分頁/MVC/三層架構/Ajax)https://www.bilibili.
服務端
,
JAVA
Jul 23 2022
北冥有隻魚 -
HTTP學習筆記(三) HTTP/2
這裏簡單的介紹一下HTTP 2.0。
由HTTP 1.1 走向 HTTP 2.0
寫這篇文章的時候我在聽B站UP主翻唱的歌曲,然後我心血來潮打算看看B站現在用的是HTTP的哪個版本,於是我摁下了F12鍵。
這個h2和h3代表的是HTTP 2.0 和3.0? 這版本號刷的這麼快的嗎? 不應該是2.1==2.5 ==3.0這樣嗎?為了驗證我的想法,我打開了火狐瀏覽器。
所以就很突然,本來按照計劃只
http-2
,
HTTP
Jun 11 2022
北冥有隻魚 -
Shiro學習筆記(一) 基本概念與使用
Shiro能幫助我們幹什麼?
Apache Shiro™ is a powerful and easy-to-use Java security framework that performs authentication, authorization, cryptography, and session management. With Shiro’s easy-to-understand
shiro
,
JAVA