原创 JUC_synchronized和Lock的區別

原始構成 synchronized關鍵字屬於JVM層面,底層是通過monitor對象來完成,wait/notify方法也依賴於monitor對象,只有在同步塊和方法中才能調用。 Lock是具體類(java.util.conc

原创 JUC_CopyOnWriteArrayList

ArrayList線程不安全 public static void main(String[] args) { List<String> list= new ArrayList<>(); for (int i = 1; i <=3

原创 JUC_死鎖原因與定位分析

文章目錄什麼是死鎖產生原因demo定位分析jps命令定位進程號jstack查看相應進程號 什麼是死鎖 死鎖是指兩個或兩個以上的進程在執行過程中,因爭奪資源而造成的一種互相等待的現象,若無外力干涉則它們都無法推進下去。如果系統資源充

原创 Java_函數式接口&Stream流式計算

文章目錄函數式接口流(Stream)特點操作階段demo 函數式接口 //R apply(T t);函數型接口,一個參數,一個返回值 Function<String,Integer> function = t ->{return

原创 JUC_JMM(Java Memory Model)

文章目錄談談JMM可見性原子性有序性 談談JMM JMM(Java內存模型Java Memory Model,簡稱JMM)本身是一種抽象的概念 並不真實存在,它描述的是一組規則或規範通過規範定製了程序中各個變量(包括實例字段,靜態

原创 JUC_Volatile

文章目錄保證可見性不加volatile,死循環不保證原子性禁止指令重排單例模式DCL使用到volatile volatile是Java虛擬機提供的輕量級的同步機制 保證可見性 不加volatile,死循環 import java.

原创 JUC_ForkJoin分支合併框架

ForkJoinPool ForkJoinTask RecursiveTask demo-fibonacci import java.util.concurrent.ExecutionException; import ja

原创 JUC_CyclicBarrier

讓一組線程到達一個屏障(也可以叫同步點)時被阻塞, 直到最後一個線程到達屏障時,屏障纔會開門,所有 被屏障攔截的線程纔會繼續幹活。 線程進入屏障通過CyclicBarrier的await()方法。 demo-七龍珠召喚龍珠

原创 JUC_CountDownLatch

CountDownLatch主要有兩個方法,當一個或多個線程調用await方法時,這些線程會阻塞。 其它線程調用countDown方法會將計數器減1(調用countDown方法的線程不會阻塞), 當計數器的值變爲0時,因awai

原创 JVM_體系

文章目錄JVM位置JVM體系結構類裝載器ClassLoader種類虛擬機自帶的加載器用戶自定義的加載器加載時機(類僅加載一次)雙親委派機制執行引擎 Execution Engine本地接口 Native Interface本地方法

原创 SpringCloud_Sleuth分佈式鏈路跟蹤

文章目錄概述搭建鏈路監控zipkin下載運行jar運行控制檯服務提供者服務消費者效果參考Demo 概述 在微服務框架中,一個由客戶端發起的請求在後端系統中會經過多個不同的服務節點調用來協同產生最後的請求結果,每一個請求都會形成一條

原创 SpringCloud_Stream消息驅動

文章目錄概述消息驅動之生產者消息驅動之消費者分組消費與持久化參考Demo 概述 屏蔽底層消息中間件的差異,降低切換成本,統一消息的編程模型。 在沒有Binder這個概念的情況下,SpringBoot應用要直接與消息中間件進行信

原创 SpringCloud_Gateway網關

文章目錄概述簡介特性與Zuul的區別Zuul 1.x模型GateWay模型核心概念Route 路由Predicate 斷言Filter 過濾工作流程配置參考Demo 概述 簡介 SpringCloud全家桶中有個很重要的組件就是網

原创 SpringCloud Alibaba_Nacos服務註冊和配置中心

文章目錄簡介下載安裝運行服務註冊中心服務提供者服務消費者註冊中心對比Nacos AP與CP模式切換服務配置中心基礎配置分類配置NameSpace、Group、Data id三者的關係三種分類加載方案配置Data id方案Group

原创 MySQL_小練習

1)所有部門名稱 SELECT dname FROM dept 2)所有僱員名及全年收入(工資+補助) ,並指定列別名“年收入” SELECT ename, ( sal + ifnull( comm, 0 ) )