原创 leetcode 300. Longest Increasing Subsequence

題目要求Given an unsorted array of integers, find the length of longest increasing subsequence. For example, Given [10, 9,

原创 leetcode295. Find Median from Data Stream

題目要求Median is the middle value in an ordered integer list. If the size of the list is even, there is no middle value. So

原创 貓頭鷹的深夜翻譯:Java中的CAS(Compare And Swap)

題目要求在我們深入瞭解CAS(Compare And Swap)策略以及它是如何在AtomicInteger這樣的原子構造器中使用的,首先來看一下這段代碼:public class MyApp { private volatile

原创 leetcode 343. Integer Break

題目要求Given a positive integer n, break it into the sum of at least two positive integers and maximize the product of thos

原创 貓頭鷹的深夜翻譯:Pattern: Service Mesh

前言在十幾年前,我們無法想象一個分佈式系統會是什麼樣子。它給我們帶來了全新的架構思路,但同時也引入了一些問題。 當時這些系統非常少有而且架構簡單,工程師們通過儘可能的減少遠程交互的方式降低複雜度。解決分佈式問題最好的方法是儘可能的避免分佈式

原创 固定窗口和滑動窗口算法瞭解一下

前言最近在參與一個識別熱點數據的需求開發。其中涉及了限流算法相關的內容。所以這裏記錄一下自己瞭解的各種限流算法,以及各個限流算法的實現。限流算法的應用場景非常廣泛,比如通過限流來確保下游配置較差的應用不會被上游應用的大量請求擊穿,無論是HT

原创 貓頭鷹的深夜翻譯:理解java的classloader

前言Java ClassLoader是java運行系統中一個至關重要但是經常被忽略的組件。它負責在運行時尋找並加載類文件。創建自定義的ClassLoader可以徹底重定義如何將類文件加載至系統。這個教程對Java的ClassLoader進行

原创 貓頭鷹的深夜翻譯:spring事務管理

簡介大多數時候,開發者極少關注事務管理從而導致大量代碼需要重新開發,或是實現事務的時候沒有注意事務究竟是如何實現的以及在這些場景中需要關注的維度。事務管理的一個重要方面是定義正確的事務邊界,例如事務何時開始,什麼時候應該結束,什麼時候應該在

原创 貓頭鷹的深夜翻譯:持久化容器存儲

前言臨時性存儲是容器的一個很大的買點。“根據一個鏡像啓動容器,隨意變更,然後停止變更重啓一個容器。你看,一個全新的文件系統又誕生了。”在docker的語境下:# docker run -it centos [root@d42876f95c6

原创 記錄分佈式一致性中的幾個概念

前言這篇文章主要是記錄文,用於記錄一下最近看到的關於分佈式一致性的一些核心理念。ACID事務是由一系列對系統中數據進行訪問與更新的操作所組成的一個程序執行邏輯單元,狹義上的事務特指數據庫事務。事務具有ACID屬性。Atomicity 原子性

原创 Dubbo AbstractRegistry源碼閱讀

前言最近因爲工作需要在學習Dubbo的各種機制。其中深入學習了一下AbstractRegistry的實現機制。在此根據Dubbo源碼對其實現進行一個總結。Registry是幹啥的首先看一下dubbo最簡單的架構圖。架構圖中一共有五個元素,而

原创 vue-cli的項目結構

前言這篇文章對純新手友好,所以有過任何vue開發經驗的人可以出門左轉啦!這篇文章獻給我的homie蘇蕾兒童鞋,讓她在學習vue項目的時候少走一點彎路(徑直衝向末路哈哈哈)。本文將會簡單的介紹一下vue的生態環境以及其中涉及的思想。如果剛從原

原创 深入理解 依賴注入

前言相信所有面試java開發的童鞋一定都被問到過是否使用過Spring,是否瞭解其IOC容器,爲什麼不直接使用工廠模式,以及究竟IOC和DI區別在於哪裏這種問題。今天就結合JAVA語言,解釋一下究竟是如何衍生出DI模式,以及其在Spring

原创 leetcode349. Intersection of Two Arrays

題目要求Given two arrays, write a function to compute their intersection. Example: Given nums1 = [1, 2, 2, 1], nums2 = [2,

原创 貓頭鷹的深夜翻譯:Volatile的原子性, 可見性和有序性

爲什麼要額外寫一篇文章來研究volatile呢?是因爲這可能是併發中最令人困惑以及最被誤解的結構。我看過不少解釋volatile的博客,但是大多數要麼不完整,要麼難以理解。我會從併發中最重要的一些因素開始說起:原子性 原子性是不可分割的操作