原创 Mysql面試看這篇就夠了之腦圖篇

需要下載印象筆記才能加載出來,連接失效評下方告訴我 Mysql知識腦圖

原创 數據結構之二叉查找樹&平衡二叉樹&紅黑樹

前言 本文力求用通俗易懂的方式來講解數據結構,在介紹紅黑樹之前先介紹一下什麼是查找二叉查找樹(Binary Search Tree)簡稱BST,什麼是平衡二叉樹(Balanced Binary Tree)又稱爲AVL樹 一、二

原创 Mysql zip 包安裝超詳細,超簡單

下載 Mysq8.0-zip包下載如果連接失效了自己不會找的話可以評論在文章下面,看了了會馬上回復的 下載微軟運行庫集合,百度搜索下載安裝即可 解壓 將下載好的Mysql zip包解壓到自己想要安裝的那個安裝路徑下,比如我

原创 秒懂CAP理論

什麼是CAP Consistency(一致性) Availability(可用性) Partition Tolerance(分區容錯性) 以上三點爲分佈式系統的三個指標,這三個指標不能同時做到(在數學上經過了十分嚴謹的是證明)

原创 mysql面試看這篇就夠了

一、什麼是索引 索引可以類比成書本的目錄方便我們查找數據使用 二、爲什麼需要索引 想想我們平時在書本上查找資料時,如果沒有目錄的話我們得一頁一頁的去看才能找到自己想要的這個查找過程是極其慢的,但是我們有了目錄就不一樣了,我們

原创 Java多線程之ReentrantReadWriteLock基礎篇

ReentrantReadWriteLock簡介 分爲讀鎖和寫鎖,讀鎖是共享鎖(僅僅對需獲取讀鎖的線程共享,如線程需要獲取寫鎖則阻塞),寫鎖是排他鎖,示例代碼如下 public class MyReadWriteLock {

原创 Java多線程之Exchanger基礎篇

一、Exchanger應用場景 實現兩個線程之間的值交換 二、一個Demo學明白Exchanger public class MyExchanger { public static void main(String[]

原创 Java多線程之交替打印字符練習篇

要求 開啓兩個線程交替打印如下字符串:A1B2C3D45E6F7G8H9I10J11K12L13M14N 15O16P17Q18R19S20T21U22V23W24X25Y26 線程1負責輸出字母線程二負責輸出數字 如下代碼思

原创 Java多線程之Semaphore基礎篇

一、Semaphore應用場景 主要用來控制系統中最大的併發執行的線程數,可以運用到需要進行限流的業務場景 二、一個簡單Demo搞懂Semaphore public class MySemaphore { /*Sema

原创 Java多線程之Phaser基礎篇

在瞭解Phaser之前建議先過一下如下兩篇文章,不瞭解也無妨如果看完有疑問的話可以再過一遍 Java多線程之CyclicBarrier基礎篇 Java多線程之CountDownLatch基礎篇 一、 什麼是Phaser Phas

原创 Java多線程之LockSupport基礎篇

一、LockSupport有什麼用 LockSupport.park()方法能阻塞線程,LockSupport.unpark()方法能喚醒線程 二、LockSupport與wait()和notify() 有什麼區別 wait

原创 Java多線程之LongAdder&AtomicInteger&synchronized比較基礎篇

一、前言 爲什麼高併發下多個線程操作同一個變量會引發發線程安全問題,其本質原因在於count++、count--、a = a + b等等之類的操作不是原子性操作而LongAdder、AtomicInteger、synchroni

原创 Java多線程之ReentrantLock基礎篇

synchronized原理可以參考此篇文章 ReentrantLock與synchronized的比較 共同點 二者都屬於可重入鎖、獨佔鎖(即不同線程之間的訪問是互斥的) 不同點 synchronized加鎖與解鎖是隱

原创 Java多線程之CountDownLatch基礎篇

關於CountDownLatch的舉例 假如我們要建造一個房子,首先我們給準備建築材料開啓一個線程,選擇建築地點開啓一個線程,招聘工人開啓一個線程,每個線程完成任務就進行彙報,當所有線程都彙報完成時我們就可以開工建房子了示例代碼

原创 Java多線程之通俗易懂講解CAS

什麼是CAS機制 CAS即CompareAndSet被稱之爲無鎖優化,從設計思想來說CAS屬於樂觀鎖 CAS原理 int count = 0; compareAndSet(count, 1, 2) 此代碼塊需要對count執行加