原创 Java併發編程基礎---(12)線程的中斷

寫在前面:    之前在一篇博客中介紹了線程中斷的相關內容(http://blog.csdn.net/may_3/article/details/79393281),在Java鎖的實現中也有使用中斷的地方,所以想用一篇博客再好好總結一下線

原创 排序算法---(3)簡單插入排序---Java實現

寫在前面:    簡單插入排序法其實比較好理解,他的算法過程類似於打撲克抓牌的過程。在我們抓到第一張牌之後,以後抓的每一張牌都會與之前手中的牌對比,對比之後,插入到合適的位置上,直到抓完最後一張牌。那麼在算法實現中,也是同理,我們假設數組

原创 深入理解Java虛擬機---(4)對象是否“死亡”的判斷和GC的相關收集算法

寫在前面:    在總結GC之前,首先要說,Java語言的一大好處就是講程序員從繁雜的垃圾回收,釋放對象內存空間中解放出來,相比之下,C++語言,還需要通過程序員手動的去管理,釋放內存空間,省去了程序員的一大部分工作。在這一篇博客中,將會

原创 排序算法---(2)選擇排序---Java實現

寫在前面:    在這篇博客中,將會總結選擇排序算法的Java實現,分析選擇排序算法的時間複雜度,空間複雜度等。選擇排序算法的排序思想是,首先第一輪找到數組中最小的數字,並與數組索引爲0的元素交換,第二輪從索引爲1的位置開始尋找,同樣是找

原创 數據庫-樂觀鎖和悲觀鎖

寫在前面:    鎖根據其使用的方式可以劃分爲:樂觀鎖和悲觀鎖。樂觀鎖即樂觀併發控制,悲觀鎖即悲觀併發控制,他們是處理併發控制時主要採用的技術手段。其中,悲觀鎖正是數據庫本身提供的鎖機制實現的。    悲觀鎖:    悲觀鎖(Pessim

原创 Java併發編程基礎---(9)Java中的鎖---隊列同步器

寫在前面:     在這一篇博客中,將會介紹Java中的鎖等相關內容,篇幅較長,會循序漸進的總結從隊列同步器再到Lock接口的相關實現類。 隊列同步器:     隊列同步器 (AbstractQueuedSynchronizer) ,是用

原创 Java併發編程基礎---(11)讀寫鎖---ReadWriteLock

寫在前面:    Mutex(互斥鎖)、ReentrantLock(重入鎖)本質上都是一種排他鎖,在同一時刻只允許一個線程進行訪問,而讀寫鎖允許多個讀線程訪問,但是在寫線程訪問時,所有的讀線程和其他寫線程都會被阻塞。    ReadWri

原创 Java併發編程基礎---(13)wait和sleep的區別

寫在前面:    在併發編程中,wait和sleep是常用的方法,相似卻有着很大的區別,今天在博客中進行總結。我也是根據平常的併發編程經驗和相關的博客總結了wait和sleep的區別,以及各自特點,肯定會有未想到的,希望大家幫忙留言補充,

原创 Java併發編程基礎---(10)重入鎖---ReentrantLock

寫在前面:    在之前的博客中,我們總結了隊列同步器的方法,在這篇博客中,將會總結Lock的實現類ReentrantLock,在ReentrantLock類的內部,就有一個內部類,繼承了我們之前討論過的隊列同步器,我們也一起來看看隊列同

原创 Java併發編程基礎---(8)控制併發編程數量的Semaphore總結

寫在前面:    在前面兩篇博客中,介紹了CountDownLatch、CyclicBarrier類的使用,這篇博客中,將會總結Semaphore類的使用,完善Java併發包中的3個工具類的使用總結。Semaphore    Semaph

原创 深入理解Java虛擬機---(3)內存溢出與內存泄漏

寫在前面:    內存溢出和內存泄漏都是程序中,我們要極力避免出現的異常,二者在字面上看上去相似,但實際上是不一樣的異常情況,在這篇博客中,我們會總結內存溢出與內存泄漏的區別。內存溢出和內存泄漏的定義:    內存溢出:Out Of Me

原创 阻塞隊列實現生產者-消費者模式

目錄 目錄 阻塞隊列 代碼實現: 博客參考 阻塞隊列   阻塞隊列(BlockingQueue)相較於普通的隊列,添加了2個附加的操作。 (1)在隊列爲空時,獲取元素的線程會等待隊列變爲非空。 (2)當隊列滿時,存儲元

原创 MySql索引+最左前綴原則

在學習mysql索引的時候,找到兩篇寫的比較好的博客,記錄到這裏。 https://blog.csdn.net/SkySuperWL/article/details/52583579 https://www.jb51.net/ar

原创 Java多線程面試問題總結

這篇博文總結一些面試之中Java多線程的一些關鍵問題。每一個問題,會簡要介紹,一些問題,下面會附上詳細的介紹博文鏈接,方便小夥伴們更好的學習和交流。謝謝大家。 目錄 目錄 CAS ABA問題 AQS 自旋鎖 volatile關鍵字

原创 mysql關於內連接和外連接的理解

inner join是我們最常見的連接方式了,只連接匹配的行 外連接也是一種連接方式,不過和inner的區別主要在於對於不匹配行的處理上,不匹配的行也會選擇上,不過左右和full在選擇上有差異 左外連接 包含左邊表的全部行(不管右邊的表