原创 阿里巴巴Druid,輕鬆實現MySQL數據庫連接加密!

爲什麼要加密? 現在的開發習慣,無論是公司的項目還是個人的項目,都會選擇將源碼上傳到 Git 服務器(GitHub、Gitee 或是自建服務器),但只要將源碼提交到公網服務器就會存在源碼泄漏的風險,而數據庫配置信息作爲源碼的一部分,一旦出現

原创 最新版Swagger 3升級指南和新功能體驗!

Swagger 3.0 發佈已經有一段時間了,它於 2020.7 月 發佈,但目前市面上使用的主流版本還是 Swagger 2.X 版本和少量的 1.X 版本,然而作爲一名合格的程序員怎麼能不折騰新技術呢?所以本期就大家帶來一篇最新版 Sw

原创 try-catch-finally中的4個大坑,不小心就栽進去了!

在 Java 語言中 try-catch-finally 看似簡單,一副人畜無害的樣子,但想要真正的“掌控”它,卻並不是一件容易的事。別的不說,咱就拿 fianlly 來說吧,別看它的功能單一,但使用起來卻“暗藏殺機”,若您不信,咱來看下面

原创 Socket粘包問題終極解決方案—Netty版(2W字)!

上一篇我們講了《Socket粘包問題的3種解決方案》,但沒想到評論區竟然炸了。介於大家的熱情討論,以及不同的反饋意見,本文就來做一個擴展和延伸,試圖找到問題的最優解,以及消息通訊的最優解決方案。 在正式開始之前,我們先對上篇評論中的幾個典型

原创 Socket粘包問題的3種解決方案,最後一種最完美!

在 Java 語言中,傳統的 Socket 編程分爲兩種實現方式,這兩種實現方式也對應着兩種不同的傳輸層協議:TCP 協議和 UDP 協議,但作爲互聯網中最常用的傳輸層協議 TCP,在使用時卻會導致粘包和半包問題,於是爲了徹底的解決此問題,

原创 MySQL爲Null會導致5個問題,個個致命!

在正式開始之前,我們先來看下 MySQL 服務器的配置和版本號信息,如下圖所示: “兵馬未動糧草先行”,看完了相關的配置之後,我們先來創建一張測試表和一些測試數據。 -- 如果存在 person 表先刪除 DROP TABLE IF EX

原创 求求你,別再用wait和notify了!

Condition 是 JDK 1.5 中提供的用來替代 wait 和 notify 的線程通訊方法,那麼一定會有人問:爲什麼不能用 wait 和 notify 了? 哥們我用的好好的。老弟彆着急,聽我給你細說... 之所以推薦使用 Con

原创 線程池的7種創建方式,強烈推薦你用它...

根據摩爾定律所說:集成電路上可容納的晶體管數量每 18 個月翻一番,因此 CPU 上的晶體管數量會越來越多。 但隨着時間的推移,集成電路上可容納的晶體管數量已趨向飽和,摩爾定律也漸漸失效,因此多核 CPU 逐漸變爲主流,與之相對應的多線程編

原创 文件寫入的6種方法,這種方法性能最好

在 Java 中操作文件的方法本質上只有兩種:字符流和字節流,而字節流和字符流的實現類又有很多,因此在文件寫入時我們就可以選擇各種各樣的類來實現。我們本文就來盤點一下這些方法,順便測試一下它們性能,以便爲我們選出最優的寫入方法。 在正式開始

原创 雙“11”搞促銷?用貪心算法來盤他!

這幾年商家爲了刺激消費是變着花樣的推出各種各樣的活動,以某多多爲首的運營式電商更是讓我們看到了營銷的無限“潛力”。這不,最近剛趕上雙 11,小區便利店的老王頭也推出了一項「空酒瓶子換酒」的促銷活動,它的規則是這樣的。 本文已收錄至 Git

原创 嗯,查詢滑動窗口最大值的這4種方法不錯...

本文已收錄至 Github《小白學算法》系列:https://github.com/vipstone/algorithm 這是一道比較基礎的算法題,涉及到的數據結構也是我們之前講過的,我這裏先買一個關子。這道面試題最近半年在亞馬遜的面試

原创 23張圖!萬字詳解「鏈表」,從小白到大佬!

鏈表和數組是數據類型中兩個重要又常用的基礎數據類型,數組是連續存儲在內存中的數據結構,因此它的優勢是可以通過下標迅速的找到元素的位置,而它的缺點則是在插入和刪除元素時會導致大量元素的被迫移動,爲了解決和平衡此問題於是就有了鏈表這種數據類型。

原创 隊列實現棧的3種方法,全都擊敗了100%的用戶!

本文已收錄至 Github《小白學算法》系列:https://github.com/vipstone/algorith 之前我們講過《用兩個棧實現一個隊列》,而今天我們要講的是「用隊列實現棧」,它們都屬於常見的面試題,而我們今天要用多種

原创 小白學算法:買賣股票的最佳時機!

本文已收錄至 Github《小白學算法》系列:https://github.com/vipstone/algorith 今天螞蟻集團(支付寶)正式上市了,毫無疑問這一舉措又造就了一大批富豪,然而作爲局外人的我們,也只有羨慕的份了。明明可

原创 算法圖解:如何用兩個棧實現一個隊列?

本文已收錄至 https://github.com/vipstone/algorithm 《算法圖解》系列。 隊列和棧是計算機中兩個非常重要的數據結構,經過前面的學習(《隊列》、《棧》)我們知道了它們各自的特點,隊列是先進先出(FIFO