原创 Redis分佈式鎖

一、分佈式鎖實現方式 1. 數據庫樂觀鎖。(增加字段版本標識version控制實現) 2. Redis的分佈式鎖。(本文重點介紹) 3. ZooKeeper的分佈式鎖。(ZooKeeper機制規定:同一個目錄下只能有一個唯一的文件名,藉

原创 SpringMVC的工作原理圖:

SpringMVC的工作原理圖: SpringMVC流程 1、  用戶發送請求至前端控制器DispatcherServlet。 2、  DispatcherServlet收到請求調用HandlerMapping處理器映射器。 3、  處

原创 JVM調優啓動

Eclipse啓動運行速度調優 JVM 提供了各種用於調整內存分配和垃圾回收行爲的標準開關和非標準開關。其中一些設置可以提高 Java IDE 的性能。注意:由於 -X (尤其是 -XX JVM)開關通常是 JVM 或 JVM 供應商特定

原创 悲觀鎖和樂觀鎖的區別、什麼情況下選擇悲觀鎖和樂觀鎖?

悲觀鎖:時刻保持着一個悲觀的態度,對誰都不信任,總想着別人會修改我的數據,所以爲了防止別人修改,每次都會上鎖,防止別人修改自己的數據,導致的後果就是每次想要拿到數據就必須等待拿到鎖,是一個很浪費時間的過程,如果訪問量巨大,悲觀鎖的存在就是

原创 補齊左括號

問題: 編寫一道程序,從標準輸入得到一個缺少左括號的表達式並打印出補全括號之後的中序表達式。例如,給定輸入: 1 + 2 ) * 3 - 4 ) * 5 - 6 ) ) ) 你的程序應該輸出: ((1 + 2) * ((3 - 4) *

原创 爲什麼HashMap線程不安全

一、Map概述 我們都知道HashMap是線程不安全的,但是HashMap的使用頻率在所有map中確實屬於比較高的。因爲它可以滿足我們大多數的場景了。   Map類繼承圖 上面展示了java中Map的繼承圖,Map是一個接口,我們常用的

原创 SQL:explain命令詳解-判斷是否索引使用使用

https://blog.csdn.net/lch_2016/article/details/80887842

原创 歸併排序

.歸併排序 算法思想 分治法。歸併排序將待排序列一分爲二,並對每個子數組遞歸排序,然後再把這兩個排好序的子數組合併爲一個有序的數組。 算法實現步驟 把長度爲n的輸入序列分爲兩個長度爲n/2的子序列 對這兩個子序列分別採用歸併排序 將兩個排

原创 基數排序

基數排序: 算法思想 先將所有關鍵字統一爲相同位數,位數較少的數前邊補0.然後從最低位開始依次向高位進行排序,直到按最高位排序完成,關鍵字序列就成爲有序序列。基數排序基於分別排序,分別收集,所以是穩定的。適用於很長的數的排序。   算法實

原创 快速排序

快速排序 分類 編程技術 快速排序由於排序效率在同爲O(N*logN)的幾種排序方法中效率較高,因此經常被採用,再加上快速排序思想----分治法也確實實用,因此很多軟件公司的筆試面試,包括像騰訊,微軟等知名IT公司都喜歡考這個,還有大大小

原创 裝飾模式

裝飾器模式 裝飾器模式(Decorator Pattern)允許向一個現有的對象添加新的功能,同時又不改變其結構。這種類型的設計模式屬於結構型模式,它是作爲現有的類的一個包裝。 這種模式創建了一個裝飾類,用來包裝原有的類,並在保持類方法簽

原创 代理模式

三:代理模式 代理模式 在代理模式(Proxy Pattern)中,一個類代表另一個類的功能。這種類型的設計模式屬於結構型模式。 在代理模式中,我們創建具有現有對象的對象,以便向外界提供功能接口。 代理是一種設計模式,代理分成三種:靜態代

原创 三大工廠模式的代碼實現及總結

簡單工廠模式、工廠方法模式、抽象工廠模式,都是屬於創建型設計模式。嚴格上來說,簡單工廠模式不屬於23設計模式之一,因爲它違背了開閉原則。這三種設計模式,名字都包含“工廠”二字,如果沒有認真地對它們的設計思想、代碼進行認真比較,還真的很難區

原创 單例模式

創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行爲型模式,共十一種:策略模式、模板方法模式、觀察者模式、迭

原创 冒泡排序及其優化的三種方式

冒泡排序(BubbleSort) 一般冒泡排序的寫法 //假設排序arr[] = { 1, 3, 4, 2, 6, 7, 8, 0 }; void BubbleSort(int arr[],int len) {     int i = 0