原创 Java中的鎖分類

在讀很多併發文章中,會提及各種各樣鎖如公平鎖,樂觀鎖等等,這篇文章介紹各種鎖的分類。介紹的內容如下: 公平鎖/非公平鎖 可重入鎖 獨享鎖/共享鎖 互斥鎖/讀寫鎖 樂觀鎖/悲觀鎖 分段鎖 偏向鎖/輕量級鎖

原创 Maven 引入外部jar包(本地引用jar包方式)以及項目打包配置

引入外部 jar 包 <dependency> <groupId>com.jaemon</groupId> <artifactId>dingtalk.warn-1.0.jar</artifactId> <version>3.

原创 Spring Boot 配置 Jackson

Jackson 是 Spring Boot 內置的 Json 解析框架,用來完成出入參的序列化和反序列化。通常,我們會在 Controller 類中方法上,加上 @RequestBody 或者 @ResponseBody 註解,S

原创 看了這篇Dubbo RPC面試題,讓天下沒有難面的面試題!

RPC非常重要,很多人面試的時候都掛在了這個地方!你要是還不懂RPC是什麼?他的基本原理是什麼?你一定要把下邊的內容記起來!好好研究一下!特別是文中給出的一張關於RPC的基本流程圖,重點中的重點,Dubbo RPC的基本執行流程就

原创 爲什麼RedisCluster會設計成16384個槽?

Redis Cluster 是Redis的集羣實現,內置數據自動分片機制,集羣內部將所有的key映射到16384個Slot中,集羣中的每個Redis Instance負責其中的一部分的Slot的讀寫。集羣客戶端連接集羣中任一Red

原创 BeanUtils.copyProperties實戰-項目中統一接口轉換

普通版 轉換接口 public interface DTOConvert<R, S> { /** * S -> R * * @param source 源實體 * @return 轉

原创 Spring 事務的七種傳播行爲

Spring事務傳播行爲 spring特有的事務傳播行爲,spring支持7種事務傳播行爲,確定客戶端和被調用端的事務邊界(說得通俗一點就是多個具有事務控制的service的相互調用時所形成的複雜的事務邊界控制)下圖所示爲7鍾事務

原创 JAVA進程突然消失的原因?

linux的OOM killer Linux 內核有個機制叫OOM killer(Out-Of-Memory killer),該機制會監控那些佔用內存過大,尤其是瞬間很快消耗大量內存的進程,爲了防止內存耗盡而內核會把該進程殺掉。

原创 Java 多線程之 Hook (鉤子) 線程

通常情況下,我們可以嚮應用程序注入一個或多個 Hook (鉤子) 線程,這樣,在程序即將退出的時候,也就是 JVM 程序即將退出的時候,Hook 線程就會被啓動執行。 先看一段示例代碼: public class AnswerAp

原创 淺談分佈式鎖

前言 隨着互聯網技術的不斷髮展,數據量的不斷增加,業務邏輯日趨複雜,在這種背景下,傳統的集中式系統已經無法滿足我們的業務需求,分佈式系統被應用在更多的場景,而在分佈式系統中訪問共享資源就需要一種互斥機制,來防止彼此之間的互相干擾,

原创 使用 ApplicationEvent 和 Listener 快速實現業務解耦(觀察者模式)

ApplicationEvent以及Listener是Spring爲我們提供的一個事件監聽、訂閱的實現,內部實現原理是觀察者設計模式,設計初衷也是爲了系統業務邏輯之間的解耦,提高可擴展性以及可維護性。 通過 Application

原创 淺談分佈式事務

現今互聯網界,分佈式系統和微服務架構盛行。一個簡單操作,在服務端非常可能是由多個服務和數據庫實例協同完成的。在一致性要求較高的場景下,多個獨立操作之間的一致性問題顯得格外棘手。 基於水平擴容能力和成本考慮,傳統的強一致的解決方案(

原创 SpringBoot 註解相關工具類(AnnotationUtils、AnnotatedElementUtils...)

@Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @Scope("singleton") @Component // 表明註解會被子

原创 @Resource 和 @Autowired 註解的區別

@Autowird @Autowird 屬於spring框架,默認使用類型(byType)進行注入,例如下面代碼: @Autowired public IUserService userService 系統會根據IUs

原创 使用 lsof 查找打開的文件

在 UNIX® 環境中,文件無處不在,這便產生了一句格言:“任何事物都是文件”。通過文件不僅僅可以訪問常規數據,通常還可以訪問網絡連接和硬件。在有些情況下,當您使用 ls 請求目錄清單時,將出現相應的條目。在其他情況下,如傳輸控制