原创 Mybatis 高級結果映射Association Collection Cache-ref Discriminator Cache

Association元素 <association property="author" column="blog_author_id" javaType=" Author"> <id property="id" column="

原创 java內存區域與內存溢出

內存模型     Java虛擬機在執行java程序的過程中把他所管理的內存劃分爲若干個不同的數據區域。包括:程序計數器、java虛擬機棧、本地發放棧、java堆、方法區。 內存模型如圖:  程序計數器 一塊較小的內存空間,它是當前

原创 No enclosing instance of type E is accessible. Must qualify the allocation with an enclosin的解決方案

       最近用java寫一個小程序時編譯出現:No enclosing instance of type E is accessible. Must qualify the allocation with an enclosing

原创 java併發編程--ConcurrentHashMap、CopyOnWriteArrayList、BlockingQueue

ConcurrentHashMap   ConcurrentHashMap是HashMap在併發環境下的版本,大家可能要問,既然已經可以通過Collections.synchronizedMap獲得線程安全的映射型容器,爲什麼還需要C

原创 java併發編程---sleep和wait

1.sleep()方法   sleep()使當前線程進入停滯狀態(阻塞當前線程),讓出CUP的使用、目的是不讓當前線程獨自霸佔該進程所獲的CPU資源,以留一定時間給其他線程執行的機會;    sleep()是Thread類的Static(

原创 java併發編程---synchronized和lock兩種鎖的比較

 性能比較     在JDK1.5中,synchronized是性能低效的。因爲這是一個重量級操作,它對性能最大的影響是阻塞的是實現,掛起線程和恢復線程的操作都需要轉入內核態中完成,這些操作給系統的併發性帶來了很大的壓力。相比之下使用J

原创 java併發編程---lock鎖

        先了解一下java.util.concurrent.locks.Lock接口的實現類:ReentrantLock與ReentrantReadWriteLock的內部類中的ReadLock與WriteLock;分別叫重入鎖,

原创 java併發編程---synchronized關鍵字

 在併發編程中,多線程同時併發訪問的資源叫做臨界資源,當多個線程同時訪問對象並要求操作相同資源時,分割了原子操作就有可能出現數據的不一致或數據不完整的情況,爲避免這種情況的發生,我們會採取同步機制,以確保在某一時刻,方法內只允許有一個線程

原创 java併發編程---volatile關鍵字

當前的Java內存模型下,線程可以把變量保存在本地內存(比如機器的寄存器)中,而不是直接在主存中進行讀寫。這就可能造成一個線程在主存中修改了一個變量的值,而另外一個線程還繼續使用它在寄存器中的變量值的拷貝,造成數據的不一致。 Vo

原创 day day up

微服務   Spring Cloud底層原理 負載均衡 微服務註冊中心如何承載大型系統的千萬級訪問 分佈式之消息隊列複習精講 Euraka和ZOOkeeper比較 - 莫顏軒的博客 - CSDN博客 Eureka的工作原理以及它與ZooK

原创 Spring事務機制中@Transactional失效的原因

      最近項目中發現spring事務機制中@Transactional會失效,一個方法拋出異常,但是數據庫中修改的數據並不會回滾,於是看了一些資料,發現以下情況@Transactional事務會失效。 1.首先檢查配置,在項目的sp

原创 SpringCloud--斷路器(Hystrix)

在微服務架構中,我們將業務拆分成一個個的服務,服務與服務之間可以相互調用(RPC)。爲了保證其高可用,單個服務又必須集羣部署。由於網絡原因或者自身的原因,服務並不能保證服務的100%可用,如果單個服務出現問題,調用這個服務就會出現網絡延

原创 Kafka的簡單介紹

一、爲什麼需要消息系統 1.解耦:   允許你獨立的擴展或修改兩邊的處理過程,只要確保它們遵守同樣的接口約束。 2.冗餘:   消息隊列把數據進行持久化直到它們已經被完全處理,通過這一方式規避了數據丟失風險。許多消息隊列所採用的

原创 SpringCloud--服務消費者(Feign)

一、Feign簡介 Feign是一個聲明式的web服務客戶端,它使得寫web服務變得更簡單。使用Feign,只需要創建一個接口並註解。它具有可插拔的註解特性,包括Feign 註解和JAX-RS註解。Feign同時支持可插拔的編碼器和解

原创 GC算法 垃圾收集器

概述 垃圾收集 Garbage Collection 通常被稱爲“GC”,它誕生於1960年 MIT 的 Lisp 語言,經過半個多世紀,目前已經十分成熟了。 jvm 中,程序計數器、虛擬機棧、本地方法棧都是隨線程而生隨線程而滅,棧幀隨