原创 用@Value註解直接注入properties中的值

有兩種方式可以實現用@Value註解直接將properties中的值注入變量,一種是@Value("${key}"),一種是@Value("#{beanName[key]}"),他們本質上是實現了不同的類 一、@Value("${key}

原创 basic paxos協議——分佈式一致性協議初探

1、什麼是paxos協議? 定義:Paxos算法是在多個成員之間對某個值(提議)達成一致的協議。這個值可以是任何東西。比如多個成員之間進行選主,那麼這個值就是主的身份。在應用到日誌同步中時,這個值就是一條日誌。通過多次Paxos的執行就可

原创 集合框架——HashMap實現原理詳解

  目錄 一、HashMap實現原理 1、底層數據結構 2、put方法: 3、擴容resize()方法 4、刪除remove()方法: 二、關於HashMap的幾個問題 1、爲什麼HashMap不是線程安全的 2、HashMap爲什麼不直

原创 集合框架——LinkedHashMap實現原理詳解

我們已經講解了HashMap的實現原理,LinkedHashMap是HashMap的子類,在其基礎上實現了元素的排序功能,接下來對LinkedHashMap的實現進行一個瞭解。 目錄 底層數據結構 查詢操作get() 插入操作put()/

原创 集合框架——hashCode算法實現

目錄 一、hashCode算法實現 二、HashMap中爲什麼數組的長度爲2的冪次方 三、HashMap 在計算bucket位置時,爲什麼使用 & 與運算代替模運算? 四、自定義 HashMap 容量最好是多少? 五、如何解決Hash衝突

原创 集合框架——集合元素的排序

目錄   一、哪些實現類有排序功能 二、list排序的實現 三、set和map的排序實現 1、set的排序 2、map的排序 、哪些實現類有排序功能 集合框架的幾個主要接口List、Set、Queue和Map中,只有list的實現類都有s

原创 常見排序算法Java實現及複雜度總結

1、冒泡排序public class SortAlgorithm { //1、冒泡排序bubbleSort public static void bubbleSort(int[] num){ int len

原创 Java併發——重入鎖ReentrantLock的實現原理及源碼解析

1、什麼是可重入鎖?可重入鎖就是對於已經獲得鎖的線程,可以重複的多次的獲得該鎖。而不可重入的鎖在線程獲得該鎖後,該線程如果再次請求獲得該鎖,就會在調用tryAquires()的時候返回false,從而阻塞自己。2、可重入鎖的實現原理?要實

原创 git的ssh連接問題:[email protected]: Permission denied (publickey)

首先根據點擊打開鏈接來獲取公鑰並配置連接,但是在最後一步出現了[email protected]: Permission denied (publickey)問題,查找很久,基本的解決方案在點擊打開鏈接但是都沒有解決我的問題,後來發現檢查是否連

原创 git入門操作總結

實習一個月,從git入門到使用多次後一點點理解,再總結一次發現收穫良多,本文儘量從日常使用和簡單的角度來描述git操作,僅作記錄,也希望對大家有所幫助  git 常用 add,commit status:查看文件狀態 文件的狀態總的來說

原创 Java併發——Executor框架ThreadPoolExecutor詳解

ThreadPoolExecutor是Executor接口的一個重要的實現類,是線程池的具體實現,用來執行被提交的任務。一、ThreadPoolExecutor的創建:直接創建ThreadPoolExecutor的實例對象,這樣需要自己配

原创 Java併發——關於Java內存模型(JMM),你需要知道什麼?

一、JMM採用的什麼內存模型?我們這個內存模型看起來是怎麼樣的?併發編程中有兩個主要的問題,一個是不同的線程之間怎麼通信;二個是如何保證不同線程之間的同步。如果一個模型能夠解決這兩個問題,那麼就可以用來描述併發編程模型。在命令式編程中,線

原创 深入理解MySQL索引原理和實現——爲什麼索引可以加速查詢?

說到索引,很多人都知道“索引是一個排序的列表,在這個列表中存儲着索引的值和包含這個值的數據所在行的物理地址,在數據十分龐大的時候,索引可以大大加快查詢的速度,這是因爲使用索引後可以不用掃描全表來定位某行的數據,而是先通過索引表找到該行數據

原创 Java併發——Executor框架ScheduledThreadPoolExecutor詳解

ScheduledThreadPoolExecutor類繼承了ThreadPoolExecutor並實現了ScheduledExecutorService接口。主要用於在給定的延遲後執行任務或者定期執行任務。作用類似於java.util包

原创 springMVC中@Rquestmapping註釋在類上資源路徑出錯的問題

做秒殺項目的時候不知道爲啥註解在類上的requestmapping會加到資源路徑上,就是這樣:然後資源路徑就變成:在jsp頁面中的路徑也是seckillId的值會加到資源路徑前面,導致資源找不到,報404錯誤:解決方案:在WEB-INF前