博客 / 列表

北冥有隻魚 - JDK 新特性學習筆記之模塊系統

有兩條小魚快樂地遊着,碰到一條老魚從對面游過來。老魚向他們點頭問好:「早上好啊小夥子們,今天的水怎麼樣?」兩條小魚接着遊了一會兒,突然停了下來,一臉懵逼地看着對方:水是個什麼東西? 習以為常的就是水 模塊系統是JDK 9的特性,後面的JavaFX學習筆記都會基於JDK 11,甚至更高版本。同時這個特性也是我比較感興趣的,進一步強化了Java的封裝能力。 回顧Java的特性 我想起剛畢業找

JAVA , 模塊化開發

北冥有隻魚 - 冪等設計論之動機及其實現

每個清晨應該都從思考開始,從思考開始會讓我的腦袋更清晰一些。這是一個系列,先是冪等然後是限流。 從一個下單場景出發 讓我們想象這麼一個場景,現在我有一個表單,也就是我們要創建某條數據,這個表單可以是創建一條訂單, 像下面這樣: 一般來説我們下單結束之後可以選擇讓頁面跳轉到訂單詳情頁面上,但是呢,不巧的是由於客户的網絡比較慢,第一個請求發出去的時候,大致上需要等待兩秒的時間。這個時候用户顯然有點不

架構設計

北冥有隻魚 - 且談軟件架構(二) 模塊化與MVC

前言 我一貫不喜歡手冊式的文章,就告訴你一些定律、經驗,我更願意完整的告訴我的經驗,我的理論是如何得出的,讀我的文章,就好像在和我進行交談,本篇可以認為是經驗之談,所謂經驗不是定理,就是這些經驗部分具備普適性,部分不具備普適性,具體情況要具體分析。本身本篇的標題是從MVC走向DDD,主要還是在掘金看到了轉轉技術團隊的《轉轉價格系統DDD實踐》這篇文章,其中提到: 在使用傳統的mvc模式下,我們往往

模塊化 , mvc

北冥有隻魚 - 解鎖網絡性能優化利器HTTP/2C

我總要言説一些東西,因為我的心始終在喋喋不休。 前言 HTTP的發展現狀 最近腦海裏面始終活躍着一些想法,一部分是對過去錯誤認知的糾正,比如HTTP/2。在《HTTP學習筆記(三) HTTP/2》,這裏已經提過了,HTTP 1.0的性能缺點是每一個連接都對應一個TCP連接,到HTTP 1.1對這個問題進行了解決,也就是keep-alive和流水線,所謂keep-alive, 也就是説客户端和服務端

http-2 , 後端

北冥有隻魚 - 我們來聊聊HashMap吧

回憶起HashMap 概述HashMap 説到HashMap我腦中復現出下面這一個圖: 也就是hash算法、數組、鏈表、紅黑樹,我放入的key-value,根據hash算法會計算出來應該放置到數組的哪個位置上,如果出現了hash衝突,也就是hash算法映射出來的下標是一個,但是使用equals方法判斷不相等,那麼也就是出現了hash衝突,就會數組對應的位置形成鏈表,鏈表大於8個之後,轉為紅黑樹。

hashmap

北冥有隻魚 - 用Java來實現BIO和NIO模型的HTTP服務器(二) NIO的實現

翻了一下(一)發現整體還是不大好, 這裏重新再梳理一下 前言 這是一個系列的文章,按照規劃是用Java標準庫、Netty來實現一個非常簡單的HTTP服務器,HTTP服務器我們可以使用Java標準庫提供的api,實現BIO、NIO模型的HTTP服務器,然後再用Netty實現,前一篇我們寫的類在這一篇還可以用到,讓我們回憶一下上一篇我們講了什麼,我們回顧了通信的發展史,從最開始的點對點鏈路,到總線鏈路

JAVA , nio

北冥有隻魚 - HashMap的0.75可能只是一個經驗值

前言 還是要面對HashMap的,這是個高頻面試點,以前本身想着一口氣講投HashMap的,但是一口氣講投HashMap想來非常消耗肺活量,篇幅也讓人生畏,所以將其分拆為幾篇,每篇是獨立的主題,最後又將主題合併起來。本篇就來看HashMap, 看的就是HashMap的構造函數: static final float DEFAULT_LOAD_FACTOR = 0.75f; public HashM

hashmap , JAVA

北冥有隻魚 - HTTP/2.0的二進制是什麼?

這篇純粹滿足自己的好奇心 我好像是一個在海邊玩耍的孩子,不時為拾到比通常更光滑的石子或更美麗的 貝殼而歡欣鼓舞,而展現在我面前的是完全未探明的真理之海。牛頓 寫本文的時候,想起高中物理課本的一句話: 我好像是一個在海邊玩耍的孩子,不時為拾到比通常更光滑的石子或更美麗的貝殼而歡欣鼓舞,而展現在我面前的是完全未探明的真理之海。 那個時候不懂這句話,忙於刷分,如今純粹是為了自己的好奇心而探究一些

http-2

北冥有隻魚 - 反向代理學習筆記(一) Nginx與反向代理緒論

本來是隻想學習Nginx的,但是想來只學Nginx學過來有些狹窄,因為現在反向代理服務器 什麼是代理? 作為一個滬漂程序員,聽到代理這個詞,我下意識的想到了中介,現在在上海已經很少能找到房東看房子了,基本上都是從中介那裏看房,從這個角度來説中介代理了房東的部分職責,帶你看房。在漢語詞典中也是這麼闡釋的,待他人處理事務。那我們給代理前面加上正向這個詞呢,這也就成為了計算機領域內的專有名詞,正向代理。

Nginx , 反向代理

北冥有隻魚 - 異步Servlet學習筆記(一)

兩週沒更新了,感覺不寫點什麼,有點不舒服的感覺。 前言 回憶一下學Java的歷程,當時是看JavaSE(基本語法、線程、泛型),然後是JavaEE,JavaEE也基本就是圍繞着Servlet的使用、JSP、JDBC來學習,當時看的是B站up主顏羣的教學視頻: JavaWeb視頻教程(JSP/Servlet/上傳/下載/分頁/MVC/三層架構/Ajax)https://www.bilibili.

服務端 , JAVA

北冥有隻魚 - 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

北冥有隻魚 - 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