原创 獨到的見解,關於分佈式事務,我有這些話要說 1、事務的認識 2、分佈式數據一致性解決方案 3、高時效性方案介紹 4、低時效性方案介紹 一個通俗的例子 總結

第一次寫文章,寫的不好,還希望大家不吝賜教。 這幾天看分佈式事務相關的知識,網上的信息都是大同小異,但總感覺理解起來比較費勁,不夠接地氣,所以自己按照自己的理解宏觀的總結了一下,因爲是純理論的,沒圖,看着可能比較累,大家包涵,文章僅代表個

原创 誰說明天上線,這貨壓根不知道開發流程 一、前言 二、時間節奏 三、資源投入 四、研發、測試、上線階段 五、項目覆盤 六、總結

沉澱、分享、成長,讓自己和他人都能有所收穫! 一、前言 互聯網公司常見工種有哪些? 互聯網中一個項目的上線會需要各個工種間的配合,以研發爲視角上會承接產品需求,下會交給測試驗證,最終完成項目交付上線。其實除此之外,還會有業務、運營、UI

原创 意想不到的是,這個神奇的bug竟讓我加班到深夜 項目上線 說曹操曹操就到 排查問題 找出bug 真相大白 經驗教訓

給大家分享一個近期解決的線上問題,起因是這樣的,近期參與公司的一個項目,工程量很大,代碼編寫測試過後終於到了緊張的上線時刻。 項目上線 上線前照例忐忑不安了一番,因爲工程量比較大,預估可能不會很順利,但還不至於到了祈禱服務器不要出bug的地

原创 fastjson:我哭了,差點被幾個“漏洞”毀了一世英名 01、前世今生 02、使用指南 03、使用註解 04、序列化特性 05、我爲什麼快 06、尾聲

01、前世今生 我是 fastjson,是個地地道道的杭州土著,但我始終懷揣着一顆走向全世界的雄心。這不,我在 GitHub 上的簡介都換成了英文,國際範十足吧? 如果你的英語功底沒有我家老闆 666 的話,我可以簡單地翻譯下(說人話,

原创 String對象的那些事,幾行代碼就解釋得清清楚楚 前言 String對象判等 String與常量池 StringBuilder與StringBuffer String.intern()

前言 String是Java中十分常用的類,在面試題中也是出鏡率很高的常客,本文將我自己學習中遇到的一些問題進行整理,如果有誤,歡迎指正。 String對象判等 千萬不要用 == 去判斷String對象是否相等,==比較的是地址。JVM只會

原创 使用CompletableFuture時,那些令人頭疼的問題

背景 有一個功能,這個功能裏需要調用幾個不同的RPC請求,一開始不以爲然,沒覺得什麼,所以所有的RPC請求都是串行執行,後來發現部分RPC返回時間比較長導致此功能接口時間耗時較長,於是乎就使用了JDK8新特性CompletableFutur

原创 線程的“死鎖”,今天一下就頓悟了 我網上查到的死鎖 我理解的死鎖 四個條件 紙上學來終覺淺,絕知此事要躬行 如何打破死鎖

我網上查到的死鎖 什麼是死鎖: 在申請鎖時發生了交叉閉環申請。即線程在獲得了鎖A並且沒有釋放的情況下去申請鎖B,這時,另一個線程已經獲得了鎖B,在釋放鎖B之前又要先獲得鎖A,因此閉環發生,陷入死鎖循環。 好,如果你能看懂理解這句話,就沒

原创 Mybatis配置文件XML全貌詳解,再不懂我也沒招了 一、爲什麼要使用配置文件 二、Mybatis 配置全貌 三、XML 核心配置 四、XML 映射文件 五、總結

一、爲什麼要使用配置文件 試想,如果沒有配置文件,我們的應用程序將只能沿着固定的姿態運行,幾乎不能做任何動態的調整,那麼這不是一套完美的設計,因爲我們希望擁有更寬更靈活的操作空間和更多的兼容度,同時也能解決硬編碼等問題,所以我們需要有配置文

原创 同事如此使用StringBuilder,我給他提了一個Bug

字符串的拼接在項目中使用的非常頻繁,但稍不留意往往又會造成一些性能問題。 字符串的拼接在項目中使用的非常頻繁,但稍不留意往往又會造成一些性能問題。最近 Review 代碼時發現同事寫了如下的代碼,於是給他提了一個 bug。 @Test pu

原创 136494字!騰訊高工手寫“Netty速成手冊”,3天帶你走向實戰 前言 第一部分:Netty的概念及體系結構 第二部分:編解碼器 第三部分:網絡協議 第四部分:案例研究 總結

前言 在java界,netty無疑是開發網絡應用的拿手菜。你不需要太多關注複雜的nio模型和底層網絡的細節,使用其豐富的接口,可以很容易的實現複雜的通訊功能。 作爲當前最流行的NIO框架,Netty在互聯網領域、大數據分佈式計算領域、遊戲行

原创 從0到1構建,一個可調用的SpringBoot對接支付寶沙箱環境案例 寫在前面 前期準備 代碼部分 測試 題外話 小結

寫在前面 首先,看這篇文章的小夥伴肯定具有Springboot的基礎以及更爲深刻的技術功底; 其次,這篇文章主要是作爲個人筆記學習之用,記錄自己從0到1構建出一個完整的支付環境,方便後期個人項目整合的時候用得到。如果有總結的不對的地方,希望

原创 全網!首發!“Java面試考點大全”深入20+互聯網公司,從技術到項目,應有盡有 本文扼要 01 互聯網大廠考點 02 Java面試考點大全 03 面試真題重現 總結

受疫情影響,今年似乎給人感覺時間比往年還要流逝得更快。顯然,春節一過,我們又將迎來面試旺季金三銀四。對於程序員來說,秋招的失利更意味着在金三銀四要打一場“硬戰”,可又有多少人做好了面試的準備呢?對於一線互聯網公司的面試,你又瞭解多少呢? 今

原创 敗家玩意兒!Redis 竟然浪費了這麼多內存? 查看內存使用情況 什麼是內存碎片 導致內存碎片的原因 寫入數據 修改數據 刪除數據 如何解決內存碎片 推倒重來 空間置換 總結

作爲內存數據庫,內存空間大小對於 Redis 來說是至關重要的。內存越多,意味着存儲的數據也會越多。但是不知道你有沒有遇到過這樣的情況,明明空間很大,但是內存的使用卻不是很理想。 爲什麼會出現這樣的情況呢?這期我們就來看看這個"詭異"的事件

原创 Alibaba新產“Java架構核心寶典”,全是流行技術,限時開放 導言 一、分佈式技術 二、中間件技術 三、大數據與高併發 四、數據庫 五、設計模式與實踐 六、數據結構與算法 總結

導言 什麼是架構師?對於程序員來說,聊架構是一個永不過時的話題。實際上,每一家公司都有自己對架構師不同的定位,因爲不同的公司,所處的階段、業務模式以及應用場景都不一樣,因此對架構師的要求不一樣,所以定位也就不同。 但是,無論如何,架構師除了

原创 泛型的高級運用,代碼重構必須要瞭解的技巧 前言 泛型的運用 場景二 場景三 總結

前言 泛型相信大家都不陌生,經常都會用到,像在一些集合類啊,一些開源框架啊,這種東西隨處可見,如果不能好好理解的話,看起源碼來也會增加了一點兒複雜度。 泛型的好處,擴展性強,低耦合業務內容,大幅度的減少重複代碼。 本篇文章,基於對泛型有一定