原创 SpringBoot添加thymeleaf模板

springboot整合thymeleaf十分簡單,你不用做任何配置,只需要添加thymeleaf依賴即可直接使用。下面給出例子。 1.創建springboot工程添加依賴 當然也可以直接在工程的pom文件中添加: <dep

原创 SpringBoot文件上傳(Ajax)

1.準備前端頁面 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>fileup</title> <script s

原创 SpringBoot屬性注入

這裏寫出兩種從properties文件中獲得屬性值得兩種方式 你可以自己創建一個properties,當然也可以使用默認的application.properties。 book.properties內容如下 book.name

原创 java排序算法選擇排序,插入排序,二分查找

選擇排序選擇的是最大或者最小數的下標 public int[] selectSort(int[] arr) { for(int i=0;i<arr.length;i++) { int min = i; fo

原创 Spring Bean的生命週期函數

首先:InstantiationAwareBeanPostProcessor接口的postProcessAfterInstantiation方法返回的是false和本文走的不是一樣的步驟,結果如何可以根據我提供的代碼自行嘗試 上

原创 Oracle之分頁

我們需要oracle中一個特殊的關鍵字rownum 例如我們查詢emp表中第2條到第5條數據 select * from( select rownum as rowno,t.* from emp t where rownum<=5

原创 GOF23之觀察者模式

當一個對象發生變化時(目標對象subject),他通知其他對象(觀察者對象observer),其他對象作出相應,這就是觀察者模式。 下面直接上代碼 接口Observer定義了update(Subject)方法,當目標對象改變時,它

原创 基於jdk1.8 HashTable源碼解析,put,addEntry, rehash圖文

HashTable和HashMap一樣,都是通過哈希表實現的,但不同的是,HashTable是線程安全的,在1.8中,它們不一樣的地方有很多。 從put方法進入 public synchronized V put(K key, V

原创 關於jdk1.8 HashSet,HashMap的一些源碼的分析1(resize())

本文主要從HashSet的add方法開始,去了解HashSet存儲數據的過程以及它的一些數據結構。 直接開始吧 以下是HashSet的add方法源碼: public boolean add(E e) { retur

原创 GOF23之動態代理模式

代理:給目標對象提供一個代理對象,並由代理對象控制對目標對象的引用 作用:在不改變目標對象方法的情況下對方法進行增強 應用:aop,mybatis接口化編程 例子: 首先接口A public interface A { i

原创 MySql索引種類以及使用注意事項

索引類型: 1.普通索引 最常使用的索引, create index index_name on table_name(col_name(length)) 2.唯一索引 和普通索引類似。索引列值唯一,和主鍵不同,允許有空值 cre

原创 線程同步的6種方法

1.synchronize 做用在靜態方法上和作用在代碼塊上(鎖對象是類名.class)效果一樣 public class SynThread1{ public static void main(String[] args)

原创 MySql行轉列的方法,case when

例如下表 將其轉換爲 在oracle中,我們能使用decode函數,在mysql中decode函數和oracle該函數功能是不同的,我們需要使用case when then end(注意要有end),sql語句如下 SELEC

原创 java創建線程的幾種方式

1.繼承Thread類,重寫run方法 public class Thread3 { public static void main(String[] args) { new Thread("線程1") { publi

原创 java偏向鎖,自旋鎖,輕量級鎖,重量級鎖,重入鎖

重量級鎖:一個同步的A線程對應着一個monitor對象(該對象和鎖對象是異議對應的關係,用來記錄等待獲得鎖對象的鎖標記的線程和已經獲得鎖標記的線程),堆空間對象的對象頭上會記錄一個,這個鎖信息指向monitor對象,monitor