原创 spring cache原理

核心類: CacheManager:緩存管理器,獲取緩存的接口。 Cache:緩存操作抽象接口,抽象實現類爲AbstractValueAdaptingCache 配置類: CachingConfigurerSupport:緩存配置

原创 1.8 hashMap.resize()的 重新散列算法

源碼 resize()的代碼片段 do { next = e.next; //判斷是在原數組空間還是擴容空間 if ((e.hash & oldCap) == 0) { if (loTail

原创 volatile原理-指令重排序

內容參考自《深入理解java虛擬機》 1 保證可見性。volatile修飾的變量每次使用時,都會刷新工作內存,從主內存取出最新值 2 禁止指令重排序 指令重排序 爲了使cpu多核處理器高效利用,會對輸入的代碼進行亂序執行。比

原创 Exchanger一個小demo

java.util.concurrent*包中的Exchanger類可用於兩個線程之間交換信息 可簡單地將Exchanger對象理解爲一個包含兩個格子的容器,通過exchanger方法可以向兩個格子中填充信息。當兩個格子中的均

原创 Exchanger 1.8源碼分析

java.util.concurrent*包中的Exchanger類可用於兩個線程之間交換信息 可簡單地將Exchanger對象理解爲一個包含兩個格子的容器,通過exchanger方法可以向兩個格子中填充信息。當兩個格子中的均

原创 生產者消費者java示例-wait()/notify()

package com.indi.wzl.Lock; import java.util.ArrayList; import java.util.List; /** * 生產者-消費者模型, wait()/notify()

原创 十大排序算法原理和代碼示例(java)

package com.pamc.sort; import java.util.Arrays; public class SortTest { static int[] arrays = {3, 5, 15, 2,

原创 生產者消費者2-lock.condition awiat()/single

package com.indi.wzl.Lock; import java.util.ArrayList; import java.util.List; import java.util.concurrent.locks.Co

原创 apollo上線遇到的坑

1 meta配置要寫http:// 2 用戶賬號要有apollo 的cacheDir目錄的權限。啓動程序的肯定不是root用戶 3 apollo 的拉取不到配置是warn日誌級別不是error。需要把apollo日誌打開

原创 JVM常用命令- 深入JVM虛擬機

內存 -XX:MaxPermSize 設置永久代最大空間 -XX:PermSize 設置永久代大小 -Xms 設置堆最小值 -Xmx 設置堆最大值 -Xmn 設置新生代大小 -XX:NewSize 設置新生代大小 -XX:MaxD

原创 hashMap中容量爲什麼是2的n次方(最簡單)

我們都知道hashmap進行hash散列的算法是hash&(length-1),而hash的容量建議都是取2的n次方 首先我們先說說這個算法,算法的目的是爲了得到小於length的更加均勻的數,如果不均勻容易產生hash碰撞,

原创 深入 hashMap 1.8 源碼

這裏主要講源碼流程,原理只做簡單介紹 hashMap原理淺析 hashMap 的結構是由數組+鏈表/紅黑樹構成,數組爲Node[] table,鏈表節點爲Node,紅黑樹節點爲TreeNode。 map.put(key,va

原创 mybatis LocalDateTime轉換

mybatis 3.45版本不做任何處理就可以支持,以上版本可能不能支持。 package com.pasc.medical.esb.pmp.db.handle; import org.apache.ibatis.type.Lo

原创 spring boot 時間戳和LocalDateTime相互轉換

@RequestBody的解決方案 package com.pasc.medical.esb.pmp.config; import com.fasterxml.jackson.core.JsonGenerator; import

原创 spring boot 應用啓動通用腳本

#!/bin/bash #參數 # $1 appName jar包前綴 必須傳 例如medical-hdp-pmp-app-application # $2 sourceDir 源目標地址,後綴不要/ # $3 targe