原创 基於AOP實現整體項目事務控制

事務在項目中國的用法 在項目中,我們事務一般使用註解的方式控制,當我們的實現類多的時候,業務都需要事務控制的時候,每個方法加 註解,會發現代碼十分十分冗餘 我們可以利用Spring 生態下的 AOP實現事務的統一控制 下面我

原创 設計模式--分類與六大原則

設計模式分類 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行爲型模式,共十一種:策略模式、模板方

原创 Java鎖介紹

重入鎖 鎖作爲併發共享數據,保證一致性的工具,在JAVA平臺有多種實現(如 synchronized(重量級) 和 ReentrantLock(輕量級)等等 ) 。這些已經寫好提供的鎖爲我們開發提供了便利。 重入鎖,也叫做遞歸鎖,

原创 JUC--線程池原理解析

線程池原理剖析 我們每一個線程池 都會 nwe ThreadPoolExecutor 類 會傳入幾個參數 corePoolSize: 核心池的大小。 當有任務來之後,就會創建一個線程去執行任務,當線程池中的線程數目達到c

原创 JUC--自定義線程池

自定義線程線程池 如果當前線程池中的線程數目小於corePoolSize,則每來一個任務,就會創建一個線程去執行這個任務; 如果當前線程池中的線程數目>=corePoolSize,則每來一個任務,會嘗試將其添加到任務緩存隊列當中,

原创 JUC--Atomic原子類

原子類 java.util.concurrent.atomic包:原子類的小工具包,支持在單個變量上解除鎖的線程安全編程 原子變量類相當於一種泛化的 volatile 變量,能夠支持原子的和有條件的讀-改-寫操作。AtomicIn

原创 JUC--線程池實現

什麼是線程池 Java中的線程池是運用場景最多的併發框架,幾乎所有需要異步或併發執行任務的程序 都可以使用線程池。在開發過程中,合理地使用線程池能夠帶來3個好處。 第一:降低資源消耗。通過重複利用已創建的線程降低線程創建和銷燬造成

原创 JUC--阻塞隊列與非阻塞隊

阻塞隊列與非阻塞隊區別 隊列:主要遵循先進先出,後進後出 阻塞隊列與普通隊列的區別在於,當隊列是空的時,從隊列中獲取元素的操作將會被阻塞,或者當隊列是滿時,往隊列裏添加元素的操作會被阻塞。試圖從空的阻塞隊列中獲取元素的線程將會被阻

原创 多線程--CountDownLatch

(計數器)CountDownLatch CountDownLatch 類位於java.util.concurrent包下,利用它可以實現類似計數器的功能。比如有一個任務A,它要等待其他4個任務執行完畢之後才能執行,此時就可以利用

原创 JVM--入門篇

源碼到類文件 class Person{ private String name; private int age; private static String address; private fina

原创 JVM--Gc篇

Java虛擬機在執行Java程序的過程中會把它所管理的內存劃分爲若干不同數據區域 一塊是非堆區,一塊是堆區。堆區分爲兩大塊,一個是Old區,一個是Young區。Young區分爲兩大塊,一個是Survivor區(S0+S1),一塊是

原创 Spring Boot--基礎

Spring Boot簡介 Spring Boot 簡化了基於Spring的應用開發,只需要“run”就能創建一個獨立的、生產級別的Spring應用。Spring Boot爲Spring平臺及第三方庫提供開箱即用的設置(提供默認

原创 Spring Boot--自動配置原理

引言 作爲Spring Boot的精髓,自動配置原理的工作過程往往只有在“面試”的時候才能用得上,但是如果在工作中你能夠深入的理解Spring Boot的自動配置原理,將無往不利。 Spring Boot的出現,得益於“習慣優於配

原创 dubbo工作原理

一、Duboo基本概念解釋 Dubbo是一種分佈式服務框架。 Webservice也是一種服務框架,但是webservice並不是分佈式的服務框架,他需要結合F5實現負載均衡。因此,dubbo除了可以提供服務之外,還可以實現軟負載

原创 多線程--死鎖

1. 什麼是多線程死鎖? 同步中嵌套同步,導致鎖無法釋放 多線程以及多進程改善了系統資源的利用率並提高了系統 的處理能力。然而,併發執行也帶來了新的問題——死鎖。所謂死鎖是指多個線程因競爭資源而造成的一種僵局(互相等待),若無外力