原创 Ribbon核心工作原理

Ribbon核心工作原理 1.Ribbon的核心接口 接口 描述 默認實現 IClientConfig 定義 Ribbon 中管理配置的接口 DefaultClientConfiglmpl IRule 定義 Ri

原创 五:線程計數器的理解

CountDownLatch 讓一些線程堵塞直到另一個線程完成一系列操作後才被喚醒。CountDownLatch 主要有兩個方法,當一個或多個線程調用 await 方法時,調用線程會被堵塞,其他線程調用 countDown 方法會

原创 十二:JVM調優及參數配置

JVM 的參數類型 標配參數 -version -help X 參數(瞭解) -Xint:解釋執行 -Xcomp:第一次使用就編譯成本地代碼 -Xmixed:混合模式 XX 參數 Boolean 類型:-XX:+

原创 二:CAS的理解

CAS 是什麼 CAS 的全稱 Compare-And-Swap,它是一條 CPU 併發操作。 它的功能是判斷內存某一個位置的值是否爲預期,如果是則更改這個值,這個過程就是原子的。 CAS 併發原體現在 JAVA 語言

原创 九:jvm垃圾的確定與GC ROOT對象

JVM 垃圾回收的時候如何確定垃圾?知道什麼是 GC Roots ? 什麼是垃圾 簡單來說就是內存中已經不在被使用到的空間就是垃圾 要進行垃圾回收,如何判斷一個對象是否可以被回收? 引用計數法 枚舉根節點做可達性分析

原创 第四節 spring容器的擴展功能

文章目錄前言核心過程1.ClassPathXmlApplicationContext2.refresh()函數1:)prepareRefresh-環境準備2:)obtainFreshBeanFactory-初始化beanfacto

原创 學好Spring Security 和Apache Shiro你需要具備這些條件

前言 web應用達到生產需要就必須有安全控制。java web領域經常提及的兩大開源框架主要有兩種選擇 Spring Security和Apache Shiro 。所以學習這兩種框架也是java開發者提高水平的必經之路。從今天開始

原创 十三:Callable、Future和FutureTask之間的關係

文章目錄Callable與RunnableFutureFutureTask Callable與Runnable 先說一下java.lang.Runnable吧,它是一個接口,在它裏面只聲明瞭一個run()方法: public in

原创 七: 深入理解Java之線程池

一、JDK線程池的總體api架構: 二、ThreadPoolExecutor類 public class ThreadPoolExecutor extends AbstractExecutorService { ......

原创 第三節 Spring加載bean的過程

前言 通過前面兩節的學習我們已經知道了Spring是如何解析XML與裝載BeanDefinition的;在本章節中我們將繼續學習bean的裝載過程這將會面臨更大的挑戰,bean加載的功能實現遠比bean的解析要複雜得多,不過沒關係

原创 三:ArrayList的理解

ArrayList 線程不安全的案例和解決方案 故障現象 public class ContainerDemo { public static void main(String[] args) { Li

原创 一:Volatile的理解

一、輕量級的同步機制 保證可見性 禁止指令排序 不保證原子性 二、基本概念 JMM 本身是一種抽象的概念並不是真實存在,它描述的是一組規定或則規範,通過這組規範定義了程序中的訪問方式。 JMM 同步規定 線程解鎖前,必須把

原创 Spark的運行模式講解

文章目錄一、背景二、yarn-client模式1.yarn-client運行流程圖2.yarn-client的工作流程三、yarn-cluster模式1.yarn-cluster運行流程圖2.yarn-cluster的工作流程四、

原创 四:java中的鎖分類

java 中鎖有哪些 1.公平和非公平鎖 是什麼 **公平鎖:**是指多個線程按照申請的順序來獲取值 **非公平鎖:**是值多個線程獲取值的順序並不是按照申請鎖的順序,有可能後申請的線程比先申請的線程優先獲取鎖,在高併發的情況

原创 八:死鎖編碼以及定位分析

死鎖編碼以及定位分析 產生死鎖的原因 死鎖是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種相互等待的現象,如果無外力的干涉那它們都將無法推進下去,如果系統的資源充足,進程的資源請求都能夠得到滿足,死鎖出現的可能性就