原创 簡要了解JVM的內存劃分

概括 在如今大家使用的JVM中,一般都將運行時數據區劃分爲以下五塊區域: 方法區(Method Area) 堆(Heap) 虛擬機棧(VM Stack) 本地方法棧(Native Method Stack) 程序計數器(Prog

原创 Leetcode題解:287. Find the Duplicate Number尋找重複數

代碼實現 只想抄個答案把題過了的可以直接複製下面的代碼: class Solution { public: int findDuplicate(vector<int>& nums) { int slow = 0, fast

原创 詳解ThreadPoolExecutor線程池的原理

使用方法 這裏我們用最簡單的形式來創建一個線程池,目的是先演示一下使用ThreadPoolExecutor的使用方法 public static void main(String[] args) { // 創建線

原创 Dijkstra最短路徑算法分析

   Dijkstra算法屬於稍微複雜一些的算法,理解起來也不是那麼容易,當初在網上搜最短路徑算法的時候感覺大多數博文都講的不是那麼通俗,主要是代碼,許多需要註釋的地方都省略了。也不是說這樣做不好,註釋的越少越能提高程序員閱讀代碼的能力。

原创 淺談AQS(抽象隊列同步器)

概念 AQS,全稱AbstractQueuedSynchronizer,即抽象隊列同步器,和CAS共同撐起了整個java.util.concurrent包,同時也是Java併發編程上繞不開的一個概念 抽象隊列同步器,以下統稱AQS

原创 淺談TCP連接的創建和銷燬過程

1. 概述 本文主要講述的內容主要包含以下部分 TCP的概念 連接的建立過程 連接的拆除過程 2. TCP協議 我們首先要明確一點,這裏討論的TCP協議並不是指TCP/IP協議簇,而是單指TCP協議,即Transmission

原创 谷歌文件系統(The Google File System譯)(第3章)

3. 系統交互 我們是出於最大限度地減少master在所有操作中的參與度來設計系統的。在此背景之下,現在我們再來描述客戶端、master,以及chunkserver是如何進行交互以實現數據變更,原子性記錄追加和快照的操作 3.1

原创 MySQL中InnoDB上的鎖分類

概要 文章翻譯自15.7.1 InnoDB Locking,其中所有鎖特性都以mysql-8.0版本爲準,其中包含的鎖種類如下: 共享鎖和排它鎖 意向鎖 記錄鎖 間隙鎖 後鍵鎖 插入意向鎖 自增鎖 空間索引的謂詞鎖 共享鎖和排

原创 Spring項目中自定義註解的使用

1. 準備工作 首先這裏創建了一個簡單的springboot項目: 各個類的內容如下所示: @Data @AllArgsConstructor @NoArgsConstructor public class User {

原创 谷歌文件系統(The Google File System譯)(1~2章)

摘要 我們設計並實現了一個面向大規模數據密集型應用的可擴展的分佈式文件系統,即谷歌文件系統。當運行在廉價硬件上時,它能提供一種容錯機制,在大量客戶端連接時提供了高內聚的性能 儘管與之前的分佈式文件系統有着相同的目標,但我們的設計是

原创 淺談Redis五種數據結構的底層原理

概念 Redis作爲一個開源的用C編寫的非關係型數據庫,基於優秀的CRUD效率,常用於軟件系統的緩存,其本身提供了以下五種數據格式: string:字符串 list:列表 hash:散列表 set:無序集合 zset:有序集合 接

原创 淺談Redis的兩種持久化機制

前言 衆所周知,redis是一個內存數據庫,既然是將數據保存在內存中,上下線之後數據自然就會丟失,在我們的業務中,這種情況當然是不允許發生的,所以這時候就需要涉及到redis的持久化機制 redis可以手動開啓持久化,來讓內存中的數據

原创 淺談JVM垃圾內存回收算法

前言 首先,我們要講的是JVM的垃圾回收機制,我默認準備閱讀本篇的人都知道以下兩點: JVM是做什麼的 Java堆是什麼 因爲我們即將要講的就是發生在JVM的Java堆上的垃圾回收,爲了突出核心,其他的一些與本篇不太相關的東西我就

原创 淺談Java的序列化機制

概念 一個對象如果想在硬盤上存儲,一定就需要藉助於一定的數據格式。這種把對象轉換爲硬盤存儲的格式的過程就叫做對象的序列化,同樣地,將這些文件再反向轉換爲程序中對象的操作就叫做反序列化 一些複雜的解決方案可能是將對象轉換爲json字符串

原创 淺談Java中的四種內部類

概述 如果你看過一些JDK和框架源碼的話,就經常會發現一般在類的定義中,都會再定義一些其他的類,這些類也同樣會被編譯成字節碼文件,這樣的類就被叫做內部類,按照一般的分法,大致可以分爲以下四類: 成員內部類 局部內部類 匿名內部類 靜