原创 ThreadPoolExecutor 源碼

使用示例 不帶返回值 public static void main(String[] args) { // 這裏使用 guava ThreadFactory threadFactory = new ThreadF

原创 FutureTask 學習

在 Java 中一般通過繼承 Thread 類或者實現 Runnable 接口這兩種方式來創建多線程,但是這兩種方式都有個缺陷,就是不能在執行完成後獲取執行的結果,因此Java 1.5 之後提供了 Callable 和 Futu

原创 Spring Security學習(一)

原理 當一個請求進來時,先經過各種過濾器(通過代碼配置生效),比如UserName Password AuthenticationFilter(表單登錄)、BasicAuthenticationFilter(Basic登錄)等

原创 使用memcache緩存

首先,通過maven引入jar <dependency> <groupId>net.spy</groupId> <artifactId>spymemcached</artifactId> <version>

原创 Spring Security學習(二)

以下配置基於表單登錄配置 自定義配置登錄頁面 @Override protected void configure(HttpSecurity http) throws Exception { http.formLogi

原创 windows mysql 服務安裝

一、下載mysql安裝包 http://pan.baidu.com/s/1bpH7gPh 二、解壓 將文件解壓並放到D盤,命名後的總路徑:D:\Program Files\MySQL 三、添加環境變量 將D:\Program Fi

原创 MySQL分區、分表學習

現在學習mysql表分區,百度了資料,特整理一下,原文章https://my.oschina.net/ydsakyclguozi/blog/393583 分區 一、什麼是表分區 通俗地講表分區是將一大表,根據條件分割成若干個

原创 索引小結

索引小結 數據庫索引用於加速查詢。 雖然哈希索引是O(1),樹索引是O(log(n)),但SQL有很多“有序”需求,故數據庫使用樹型索引。 InnoDB不支持哈希索引。 數據預讀的思路是:磁盤讀寫並不是按需讀取,而是按頁預讀,一

原创 atomic

CAS原理 CAS 的全稱爲“Compare And Set”,其作用是對某一個變量進行原子化的更新操作。 該算法的思想是: cas(v,e,u); v 表示要更新的變量,e 表示變量的預期值,u 表示變量的新值。當且僅當 v 的實際

原创 Thread 源碼

創建線程方式 有2種方式可以創建一個可執行線程。 1.繼承Thread類。子類可覆寫父類的run()方法。子類實例分配內存後可運行(非立即,取決於CPU調用) class PrimeThread extends Thread {

原创 一些配置參數的記錄

通用配置 一般不需要更改mysql配置。 [mysqld] # basic datadir = /var/lib/mysql #設置數據存儲位置 socket = /var/run/mysqld/mysqld

原创 範式和反範式

範式 目前關係數據庫有六種範式:第一範式(1NF)、第二範式(2NF)、第三範式(3NF)、巴斯-科德範式(BCNF)、第四範式(4NF)和第五範式(5NF,又稱完美範式)。滿足最低要求的範式是第一範式(1NF)。在第一範式的基礎上進

原创 MySQL鎖機制

InnoDB鎖機制 MySQL 的 InnoDB 存儲引擎支持行級鎖,InnoDB的行鎖是通過給索引項加鎖實現的,這就意味着只有通過索引條件檢索數據時,InnoDB才使用行鎖,否則使用表鎖。 例如: t(uid, uname, age

原创 java8 函數式接口

函數式接口 函數式接口(Functional Interface)就是一個有且僅有一個抽象方法,但是可以有多個非抽象方法的接口。 函數式接口可以被隱式轉換爲lambda表達式。 這些接口在java.util.function包中。 @

原创 FutureTask 源碼

Future 在 Java 中一般通過繼承 Thread類或者實現 Runnable接口這兩種方式來創建多線程,但是這兩種方式都有個缺陷,就是不能在執行完成後獲取執行的結果,因此Java 1.5之後提供了 Callable 和 Fut