原创 類加載器及其加載原理

概述 在之前的文章"類的加載流程"講了一個Class文件從加載到卸載整個生命週期的過程,並且提到"非數組類在加載階段是可控性最強的"。而這個優點很大程度上都是類加載器所帶了的,因而本篇文章就着重講一下類加載器的加載機制與加載原理。 首先我們

原创 垃圾回收算法的原理及應用

概述 有java開發經歷的小夥伴必然對垃圾回收不陌生。垃圾回收簡單來說就是一種自動的內存管理機制,當一個電腦上的某一塊內存不在被使用時,就應該釋放,供其他應用利用,而對該內存的回收過程,就稱之爲垃圾回收。 那如何進行垃圾回收那? 簡單來說

原创 手寫LRU緩存淘汰算法

概述 LRU算法全稱爲Least Recently Used是一種常見的頁面緩存淘汰算法,當緩存空間達到達到預設空間的情況下會刪除那些最久沒有被使用的數據 。 常見的頁面緩存淘汰算法主要有一下幾種: LRU 最近最久未使用 FIFO 先進

原创 從生命週期的角度看線程和進程之間的異同

概述 進程與線程想必都不陌生,兩者有諸多相同點,甚至可以這樣說,線程就是“輕量級的進程”。而且兩者基本的五個狀態也幾乎一樣,但進程和線程在狀態切換時的觸發條件卻有諸多不同,因而本文從“生命週期”的角度去談一談兩者之間的異同。 聯繫 就從狀態

原创 標識多個物體並返回物體中心座標方法的實現

概述 在圖像處理時,可能不可避免的需要計算圖像中目標體的中心點,因而本片文章重點講如何用傳統圖像處理方式來計算圖像中目標體的中心。 方案 剛開始在考慮這個問題時其實也考慮了很多方法,比如找出物體最大座標與最小座標然後取平均值、直接求平均值等

原创 SkyWalking Agent端日誌插件的編寫歷程與使用說明

概述 前一段時間順利完成了SkyWalking Agent端logger-plugin插件的開發,在此做個總結。一方面給插件的使用方法寫一中文說明,另一方面分享一下該插件開發過程中的一些考量以及收穫。 logger-plugin插件,主要作

原创 Docker三種文件系統總結

概述 容器持久化,相比小夥伴都不陌生。通過Docker的volume,我們可以非常方便的實現容器數據的持久化存儲。但volume之下的文件系統,相比許多小夥伴並不是非常清楚。因而本文以Docker爲例,重點講述Docker底層所支持的三種文

原创 回溯法套路總結與應用

概述 回溯法常用於遍歷一個列表元素的所有所有子集,比如全排列問題。可以說深度優先搜索就是回溯法的一種特殊形式。該方法的時間複雜度比較大一般爲O(N!),它不像動態規劃存在重疊子問題可以優化,當然在某些情況下,我們可以通過剪枝來進行優化,當然

原创 滑動窗口常用技巧總結

概述 在解決字串問題時,滑動窗口技巧可能經常會使用,其本身思想並不難理解,難在靈活。因而本文從一個最小覆蓋字串問題入手總結一個通用的算法框架以解決常見的滑動窗口問題。 算法與框架 下邊我們先看一個最小覆蓋子串問題: 題目本身不難理解,主要

原创 貪心算法原理及其應用

概述 貪心算法應該算是那種“只聞其聲不見其人”的算法,我們可能在好多地方都會聽到貪心算法這一概念,並且它的算法思想也比較簡單就是說算法只保證局部最優,進而達到全局最優。但我們實際編程的過程中用的並不是很多,究其原因可能是貪心算法使用的條件比

原创 視頻語義分割基準數據集與評估方法

概述 本文來源於《A Benchmark Dataset and Evaluation Methodology for Video Object Segmentation》,論文主要介紹了一種作者團隊提供的針對視頻語義分割算法進行評估的基準

原创 常見的位操作及其應用

概述 與、或、異或、取反或者移位運算這幾種基本的位操作想必諸位讀者並不陌生,如果我們能在某些合適場景下使用位運算,有些時候可以大大提高算法的效率。但由於本身位運算太過靈活,甚至某些技巧比較苦澀難懂,因而,本篇文章主要介紹幾種常見的或者有趣的

原创 二叉樹遍歷的常用方法

概述 二叉樹的遍歷可以說是解決二叉樹問題的基礎。我們常用的遍歷方式無外乎就四種前序遍歷、中序遍歷、後續遍歷、層次遍歷這四種。其中前三種遍歷方式在實現時,即便採用不同的實現方式(遞歸方式、非遞歸),它們的算法結構是有很大的相似性。因而針對前三

原创 BFS與DFS套路總結

概述 深度優先遍歷和廣度優先搜索和廣度優先搜索是解決圖問題最常見的方式,並且在leetcode中有許多相關的變體,但萬變不離其宗,其本質結構或者算法框架時固定的,因此本文BFS和DFS算法的原理總結了對應的算法框架,並提供了幾道例題來解決如

原创 鏈表問題一些常用的套路與方法

概述 鏈表問題應該是數據結構中比較基礎的一類問題,但同時也是在面試中常考的一類問題。但是圍繞鏈表問題的一些基本方法或者處理思想,也無外乎那幾類,因此本文嘗試對鏈表常用的一些方法或者套路進行總結。 常用方法 1.頭結點 增加頭結點或者說啞巴節