原创 面試必問的CAS,你懂了嗎?

概述CAS(Compare-and-Swap),即比較並替換,是一種實現併發算法時常用到的技術,Java併發包中的很多類都使用了CAS技術。CAS也是現在面試經常問的問題,本文將深入的介紹CAS的原理。案例介紹CAS之前,我們先來看一個例

原创 Java併發:volatile關鍵字詳解

概述volatile關鍵字可以說是Java虛擬機提供的最輕量級的同步機制,但是它並不容易完全被正確、完整地理解,以至於許多程序員都習慣不去使用它,遇到需要處理多線程數據競爭問題的時候一律使用synchronized來進行同步。瞭解vola

原创 MyBatis根據表結構自動生成PO/Mapper代碼的最佳實踐

前言當我們新建一個表時,在項目中至少要新建3個文件:實體類*PO.java、接口類*POMapper.java、存放SQL的接口實現類*POMapper.xml。對於字段少的表來說,可能你不會在意,但是如果是一個字段超過幾十個的表,那你可

原创 排序算法:選擇排序

前言 上一次,我們介紹了排序算法中“龜速三兄弟”的二哥“插入排序”。今天,我們繼續介紹“龜速三兄弟”中的小弟——“選擇排序”。和二哥“插入排序”一樣,由於同樣是“龜速三兄弟”中的一員,但是處理過程沒有大哥“冒泡排序”那麼簡單明瞭,因此有不