原创 MapReduce統計詞頻demo

目錄結構 pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns

原创 【吊打面試官】數據庫索引原理

正文 我看你簡歷上寫到了熟悉MySQL數據庫以及索引的相關知識,我們就從索引開始,索引有哪些數據結構? Hash、B+ 大家去設計索引的時候,會發現索引類型是可以選擇的。 爲什麼哈希表、完全平衡二叉樹、B樹、B+樹都可以優化查詢,爲何M

原创 Mysql 樂觀鎖和悲觀鎖

悲觀鎖 悲觀鎖(Pessimistic Lock),顧名思義,就是很悲觀,每次去拿數據的時候都認爲別人會修改,所以每次在拿數據的時候都會上鎖,這樣別人想拿這個數據就會block直到它拿到鎖。 悲觀鎖:假定會發生併發衝突,屏蔽一切可能違反數

原创 【最詳細解析】HTTP和HTTPS的區別

目錄 HTTPS 爲什麼會出現 HTTPS 解決了什麼問題 什麼是 HTTPS HTTPS 做了什麼 什麼是 SSL/TLS 認識 SSL/TLS HTTPS 的內核是 HTTP 探究 HTTPS 對稱加密 非對稱加密 混合加密 摘要算法

原创 爲什麼在for循環裏用+拼接字符串不好

本文,是對於Java中字符串相關知識的一個補充,主要來介紹一下字符串拼接相關的知識。本文基於jdk1.8.0_181。   字符串拼接 字符串拼接是我們在Java代碼中比較經常要做的事情,就是把多個字符串拼接到一起。 我們都知道,Str

原创 【深度解析】Java中的樂觀鎖、悲觀鎖

前言 關於線程安全一提到可能就是加鎖,在面試中也是面試官百問不厭的考察點,往往能看出面試者的基本功和是否對線程安全有自己的思考。 那鎖本身是怎麼去實現的呢?又有哪些加鎖的方式呢? 我今天就簡單聊一下樂觀鎖和悲觀鎖,他們對應的實現 CAS

原创 Cloud Computing - Proposal 雲服務器上多種類型數據庫的性能比較和原理探究

題目:雲服務器上多種類型數據庫的性能比較和原理探究 我們選取了三種不同類型的數據庫:Mysql、MongoDB、Redis 來測試它們在不同種類的雲服務器上的讀寫性能、網絡併發性能、存儲性能、CPU佔用率、事務處理能力以及安全性能方面的區

原创 Leetcode(Java)-200. 島嶼數量

給定一個由 '1'(陸地)和 '0'(水)組成的的二維網格,計算島嶼的數量。一個島被水包圍,並且它是通過水平方向或垂直方向上相鄰的陸地連接而成的。你可以假設網格的四個邊均被水包圍。 示例 1: 輸入: 11110 11010 11000

原创 Leetcode(Java)-543. 二叉樹的直徑

給定一棵二叉樹,你需要計算它的直徑長度。一棵二叉樹的直徑長度是任意兩個結點路徑長度中的最大值。這條路徑可能穿過根結點。 示例 : 給定二叉樹           1          / \         2   3        /

原创 Leetcode(Java)-12. 整數轉羅馬數字

羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符          數值 I             1 V             5 X             10 L             50 C  

原创 Leetcode(Java)-344. 反轉字符串

編寫一個函數,其作用是將輸入的字符串反轉過來。輸入字符串以字符數組 char[] 的形式給出。 不要給另外的數組分配額外的空間,你必須原地修改輸入數組、使用 O(1) 的額外空間解決這一問題。 你可以假設數組中的所有字符都是 ASCII

原创 跳躍表及底層實現原理解析

目錄   一、跳躍表簡介 爲什麼使用跳躍表 本質是解決查找問題 更進一步的跳躍表 二、跳躍表的實現 隨機層數 創建跳躍表 插入節點實現 第一部分:聲明需要存儲的變量 第二部分:搜索當前節點插入位置 第三部分:生成插入節點 第四部分:重排前

原创 Java棧的實現(原生實現)

public class MyStack { private int maxSize; private long[] stackArray; private int top; public MyStack(int

原创 ubuntu下使用ycsb對mongoDB進行性能測試

運行環境 :amazon ubuntu18.04 ycsb需要java maven python環境,並測試下是否安裝成功 sudo apt install openjdk-8-jre-headless java -version

原创 線上FullGC排查思路/實戰/解決方案

線上服務的GC問題,是Java程序非常典型的一類問題,非常考驗工程師排查問題的能力。同時,幾乎是面試必考題,但是能真正答好此題的人並不多,要麼原理沒吃透,要麼缺乏實戰經驗。 過去半年時間裏,我們的廣告系統出現了多次和GC相關的線上問題,有