原创 Java線程池

主要實現類:ThreadPoolExecutor參數說明:corePoolSize:核心線程數,線程池保有的線程的數量,即Worker的數量,如果allowCoreThreadTimeOut 參數不設置,即使這些線程空閒也不會被回收。也就是

原创 HashMap總結

默認table數組大小爲16,默認loadFactor=0.75,threshold=數組長度*loadFactor,所以默認爲12。當集合中元素當size > threshold時進行resize,數組擴充爲原來當2倍。當table數組當

原创 Java對象創建過程以及組成結構

1. 對象的創建 類加載 虛擬機遇到一條new指令時,首先檢查這個指令的參數是否能在常量池中定位到一個類到符號引用,並檢查這個符號引用代表到類是否已經被加載、解析和初始化。如果沒有,那必須先執行相應的類加載過程。 分配內存 接

原创 Synchronized實現原理總結

synchronized實現同步的基礎:Java中的每一個對象都可以作爲鎖。具體表現爲以下3種形式。對於普通同步方法,鎖是當前實例對象。對於靜態同步方法,鎖是當前類的Class對象。對於同步方法塊,鎖是Synchonized括號裏配置的對象

原创 Java Class類結構

1. class文件結構 1. 魔數與Class文件的版本 Class文件頭4個字節爲魔數(Magic Number),爲0xCAFEBABE。 緊接着4個字節爲Class文件的版本號,第5、6字節爲次版本號,第7、8字節爲主版本號。

原创 MySQL事務

事務特性ACID 1. Atomicity(原子性) 2. Consistency(一致性) 3. Isolation(隔離性) 4. Durability(持久性) 查看事務隔離級別 select @@tx_isolation; 開

原创 SpringMVC源碼學習

1. SpringMVC重要組件 1. DispatcherServlet SpringMVC的中央Servlet,所有請求的入口,重寫了doService()方法。核心方法:doService()、doDispatch()。 2. H

原创 Spring Cloud Eureka Server

單實例Eureka Server配置 1. 依賴pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.

原创 Spring Cloud 服務發佈與調用

1. 發佈服務 引入相關依賴pom.xml <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:

原创 Spring Cloud Eureka Server配置

單實例Eureka Server配置 1. 依賴pom.xml: <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.

原创 AbstractQueuedSynchronizer(AQS)同步器

1. AQS基本屬性 CAS算法: CAS, CPU指令,在大多數處理器架構,包括IA32、Space中採用的都是CAS指令,CAS的語義是“我認爲V的值應該爲A,如果是,那麼將V的值更新爲B,否則不修改並告訴V的值實際爲多少”,CA

原创 深入Java垃圾收集

1. 判斷對象是否已死的方法 可達性分析 可作爲GC Roots的對象包括下面幾種: 虛擬機棧(棧幀中的本地變量表)中引用的對象。 方法區中類靜態屬性引用的對象。 方法區中常量引用的對象。 本地方法棧中JNI(即一般說的Nativ

原创 Java對象

1. 對象的創建 類加載 虛擬機遇到一條new指令時,首先檢查這個指令的參數是否能在常量池中定位到一個類到符號引用,並檢查這個符號引用代表到類是否已經被加載、解析和初始化。如果沒有,那必須先執行相應的類加載過程。 分配內存 接

原创 class類加載

1. class文件結構 1. 魔數與Class文件的版本 Class文件頭4個字節爲魔數(Magic Number),爲0xCAFEBABE。 緊接着4個字節爲Class文件的版本號,第5、6字節爲次版本號,第7、8字節爲主版本號。

原创 Spring Boot MockMVC

1, 如果我們只是想要mock某一組件可以這樣: 依賴pom.xml <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2