原创 JVM類的加載機制詳解

1、java虛擬機與程序的生命週期在如下幾種情況下,java虛擬機將結束生命週期: 執行System.exist()方法 程序正常執行結束 程序執行過程中 遇到了異常或者錯誤而異常終止 由於操作系出現錯誤而導致java虛擬機進程

原创 類的生命週期詳解(一)

類的加載: 類的加載的最終產品是位於堆區中的Class對象 Class對象封裝了類在方法區內的數據結構,並且向JAVA程序員提供了訪問方法區內的數據結構的接口 類加載器的種類: java虛擬機自帶的加載器 (1)根類加載器(B

原创 自定義Log4j配置文件和RocketMQ-Client.jar下log文件衝突問題解決

項目jar正常,我們項目log4j中已經配置了root日誌級別level爲info,但是啓動項目後,自定義logger日誌只能打印error級別。 啓動服務時總是出現沒有設置root logger的日誌級別。 2018-05-09

原创 Spring 的整體架構和環境搭建(一)

1.整體架構 Spring是一個分層架構,它包含一些列的功能要素,並被分爲大約20個模塊,如圖: 這幾個模塊主要總結爲如下幾個部分: ① Core Containe Core Container (核心容器)包含有Beans、C

原创 徹底理解JVM垃圾回收-重要概念理解(九)

根節點枚舉 固定可作爲GC Roots的節點主要存在全局性引用(例如常量或者類靜態屬性)與執行上下文(例如棧幀中的本地變量表)中,儘管目標比較明確但是要高效查找這些節點並非易事。迄今爲止,所有收集器的根節點枚舉這一步都需要暫停

原创 HotSpot虛擬機對象探祕(六)

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

原创 徹底理解JVM垃圾回收-基礎概念理解(七)

引用計數法 給對象中添加一個引用計數器,每當有一個地方引用它時,計數器值就加1;當引用失效時,計數器引用就減1;任何時刻計數器都爲0的對象就是不可能再被使用的對象。客觀的說引用計數算法實現簡單,判定效率也很高,在大部分去情況下

原创 SpringBoot以jar啓動The temporary upload location[xxxx]is not valid

場景還原: 新項目爲了滿足運營人員使用搭建的Boss系統,採用了SpringBoot2.0,並以Jar包的形式啓動,第一次上線測試,完全正常,由於春節時隔10幾天沒有人登錄過,後來同事反應登錄的時候就報錯了,查看日誌信息: mes

原创 類加載器深入解析與階段分解(二)

1.類加載 在java代碼中,類型的加載、連接與初始化過程都是在程序運行期間完成的。 提供了更大的靈活性,增加了更多的可能性。 2.Java虛擬機與程序的生命週期 如下幾種情況,虛擬機將結束生命週期: 執行了Syst

原创 BeanFactory基礎容器的設計原理(四)

BeanFactory接口提供了使用IOC容器的規範,在這個基礎上,Spring還提供了符合這個IOC容器接口的設計原理。下面我們就XmlBeanFactory的實現爲例說明簡單IOC容器的設計原理。 下面我們就使用XmlBea

原创 線上CPU100%的排查思路

假設,服務器上部署了若干Java站點服務,以及若干Java微服務,突然收到運維的CPU異常告警。如何定位是哪個服務進程導致CPU過載. 哪個線程導致CPU過載,哪段代碼導致CPU過載? 簡要步驟如下: (1)找到最耗CPU的進程;

原创 Spring 統一資源加載策略(二)

1.統一資源接口的子類結構 WritableResource: 可寫資源接口 ByteArrayResource :二進制數組資源 ClassPathResource:類路徑下的資源,資源以相對路徑的方式表示 FileSyst

原创 類加載器的深入解析及重要特性剖析(三)

1.類加載器 類加載器用來把類加載到Java虛擬機當中。從JDK1.2版本開始,類的加載過程採用雙委託機制,這種機制能更好的保證Java平臺的安全。在此委託機制中,除了Java虛擬機自帶的根類加載器以外,其餘的類加載器都有且僅有

原创 Spring IOC容器的核心接口設計(三)

Spring IOC容器的接口設計 下面針對圖中的接口關係做一個詳細的介紹 從接口BeanFactory到HierarchicalBeanFactory,再到ConfigurableBeanFactory是一條主要的BeanF

原创 Spring分佈式鎖的starter封裝(Redisson)

由於業務權限服務,相同數據可能存在多人操作的情況,所以存在共享資源操作競爭問題,如果針對於業務單獨去控制,成本比較高,具體控制還要耦合於業務中,如果使用不規範,很容易造成競爭死鎖問題,所以次處分享一個基於AOP的分佈式鎖的star