原创 Java開發Spring常見註解

Java開發Spring常見註解    前言    Spring的一個核心功能是IOC,就是將Bean初始化加載到容器中,Bean是如何加載到容器的,可以使用Spring註解方式或者Spring XML配置方式。    註解本身沒有功能的,

原创 操作系統線程和Java線程的狀態

操作系統線程和Java線程的狀態    一、操作系統線程的狀態    操作系統的線程主要有以下三個狀態    1.  就緒狀態(ready):線程正在等待使用 CPU,經調度程序調用之後進入 running 狀態。    2. 執行狀態(r

原创 什麼是Java內存模型(JMM)?

什麼是Java內存模型(JMM)?     一、JMM的相關概念    Java內存模型簡稱JMM(Java Memory Model),是Java虛擬機所定義的一種抽象規範,用來屏蔽不同硬件和操作系統的內存訪問差異,讓java程序在各種平

原创 MySQL中的MVCC實現機制

 MySQL中的MVCC實現機制    一、什麼是MVCC?     MVCC,全稱Multi-Version Concurrency Control,即多版本併發控制。MVCC是一種無鎖的併發控制方法,一般在數據庫管理系統中,用於實現對數

原创 配置動態刷新@RefreshScope引起的取值爲null

配置動態刷新@RefreshScope引起的取值爲null  在Spring Cloud Config 動態刷新demo編寫中,分爲三個步驟:  1)git端配置更改,代碼提交  2)手動刷新配置: POST請求: http://local

原创 Redis zset 底層結構

Redis zset 底層結構    概要    在 Redis 的五種主要數據類型中,zset(有序集合)類型可能是最複雜,但也是最強大的一種。zset 不僅可以存儲鍵值對,還可以爲每個元素分配一個分數,然後根據這個分數進行排序。這使得

原创 Java併發編程之CAS原理分析

Java併發編程之CAS原理分析 在併發編程中,我們經常需要處理多線程對共享資源的訪問和修改。那麼如何解決併發安全呢? 一. 解決併發安全問題的方案 最粗暴的方式就是使用 synchronized 關鍵字了,但它是一種獨佔形式的鎖,屬於悲觀

原创 什麼是ConcurrentHashMap?不同JDK下ConcurrentHashMap的區別?

什麼是ConcurrentHashMap?不同JDK下ConcurrentHashMap的區別?    一、HashMap線程安全    我們知道,在併發情況下,使用HashMap會有線程安全的問題,那麼如何避免呢?    想要避免Hash

原创 分佈式、集羣和微服務之間的區別

分佈式、集羣和微服務之間的區別      分佈式系統是一種系統範式,而分佈式架構是一種系統設計的方法論。它們的含義在某些情況下可能會重疊,但在其他情況下可能會有細微的區別。     分佈式系統 1. 分佈式系統概念是指由多個相互獨立的節點(

原创 設計模式-模板方法模式(Template Method Pattern)

 模板方法模式(Template Method Pattern)    概要    記憶關鍵字:模板方法    定義:定義一個操作中的算法的骨架,而將一些步驟延遲到子類中。模板方法使得子類可以不改變一個算法的結構即可重新定義該算法的某些特定

原创 如何區分代碼質量的好壞?

如何區分代碼質量的好壞?     要評判好壞,我們是不是需要有一種標準?     相信大家都聽說過“高內聚,低耦合”,即類的內聚性是不是很高,耦合度是不是很低。這一原則可以作爲我們評判軟件設計的好壞。     通俗的說,我們就需要儘量讓寫出

原创 享元模式(FlyWeight Pattern)

享元模式(FlyWeight Pattern)   概要   記憶關鍵字:細粒度、共享   定義:運用共享技術有效地支持大量細粒度的對象   類型:結構型   分析:共享對象,將對象的一部分狀態(內部狀態)設計成可共享的,以減少對象的數量,

原创 爲什麼 Redis Cluster 是16384個槽位

爲什麼 Redis Cluster 是16384個槽位 正常的心跳數據包攜帶節點的完整配置,它能以冪等方式來更新配置。如果採用 16384 個插槽,佔空間 2KB (16384/8);如果採用 65536 個插槽,佔空間 8KB (6553

原创 分佈式系統和微服務的關係

 分佈式系統和微服務的關係       一、分佈式系統        分佈式系統是由多臺計算機組成的系統,這些計算機通過網絡進行通信和協作,共同完成一個或多個共享目標。在分佈式系統中,各個計算機節點可以分佈在不同的地理位置,

原创 Java虛擬機內存模型概念

Java虛擬機內存模型概念    Java虛擬機的內存可以分爲三個區域:棧stack、堆heap、方法區method area    一、棧stack    1.  棧描述的是方法執行的內存模型,每個方法被調用都會創建一個棧幀(存儲局部變量