原创 JUC併發編程學習(十五)-異步回調之CompletableFuture

Future Future接口是Java多線程Future模式的實現,在java.util.concurrent包中,可以用來進行異步計算。 Future模式是多線程中一種常用的模式。可以理解爲:我有一個任務,把它交給Future

原创 JUC併發編程學習(十六)談談java內存模型JMM

JMM:java內存模型(Java Memory Model ),不存在的東西,一個概念,約定 在多線程環境下,線程之間要通信,就不得不提JMM(Java Memory Model )。 JMM是一種規範,目的是解決由於多線程

原创 JUC併發編程學習(十七) -5分鐘搞懂volatile

基本概念 先補充一下概念,java內存模型中的可見性、原子性和有序性。 可見性 百度百科的講解,是指對象間的可見性,含義是一個對象能夠看到或者引用另一個對象的能力。 可見性,是指線程之間的可見性,一個線程修改的值對另外一個線程

原创 JUC併發編程學習(十四)-任務拆分ForkJoin詳解

分而治之思想 在古代,皇帝要想辦成一件事肯定不會自己親自去動手,而是把任務細分發給下面的大臣,下面的大臣也懶呀,於是把任務繼續分成幾個部分,繼續下發,於是到了最後最終負責的人就完成了一個小功能。上面的領導再把這些結果一層一層彙

原创 UACC接口服務調用

UACC接口服務調用 準備工作 查看業務service層項目pom文件是否有引入uacc相關依賴,爲後面接口調用做環境配置 <dependency> <groupId>com.hrt.frame

原创 java基礎(一)數組作爲方法參數和返回值

數組作爲方法參數和返回值 以前的方法中我們學習了方法的參數和返回值,但是使用的都是基本數據類型。那麼作爲引用類型的數組能否作爲 方法的參數進行傳遞呢,當然是可以的。 數組作爲方法參數傳遞,傳遞的參數是數組內存的地址。 public

原创 JUC併發編程學習(十 一)-ThreadPoolExecutor線程池的學習

線程池的核心知識就是:三大方法、7個參數、拒絕策略、優化配置 線程池原理 程序運行的本質是,佔用系統資源,CPU/磁盤網絡使用。我們希望可以高效的使用資源!池化技術就是不斷的演進出來的。 池化技術 簡單的說,池化技術就是提前

原创 JUC併發編程學習(十)-阻塞隊列、同步隊列

BlockingQueue 隊列的特點:先進先出 阻塞隊列在擁有隊列的基本特徵的同時,還額外支持兩個附加操作。這兩個附加的操作支持阻塞的插入和移除方法。 阻塞插入 隊列插入元素時,當隊列空間已經使用滿了,不得不阻塞 阻

原创 RabbitMQ消息模型之DirectExchange消息模型實戰

RabbitMQ多種消息模型實戰 前面我們學習了RabbitMQ的核心基礎組件,瞭解了基本消息模型由隊列、交換機、路由構成。而在RabbitMQ的核心組件體系中,主要有4種消息模型: 基於HeadersExchange、Direc

原创 Spring Security Oauth2學習(二)

Spring Security Oauth2(二) 認識JWT令牌 在介紹JWT之前先看一下傳統校驗令牌的方法,如下圖: 問題: 傳統授權方法的問題是用戶每次訪問資源服務,資源服務都須攜帶令牌去認證服務中心請求驗證令牌合法性,並

原创 Spring Security Oauth2學習(一)

Spring Security Oauth2學習(一) 一、用戶認證需求分析 1.用戶認證和授權 什麼是用戶身份認證? 用戶身份認證就是用戶去訪問系統資源時系統要求驗證用戶的身份信息,身份驗證合法纔可以繼續訪問。 常見的認證方式:

原创 java基礎(二)static關鍵字

Static關鍵字 關於 static 關鍵字的使用,它可以用來修飾的成員變量和成員方法,被修飾的成員是屬於類的,而不是單單是屬於某個對象的。也就是說,既然屬於類,就可以不靠創建對象來調用了。 類變量 當 static 修飾成員變

原创 Redis常見數據結構實戰

目錄字符串列表Set集合有序集合Hash哈希存儲 Redis是一個具有高性能的、基於Key-value結構化存儲的緩存中間件,支持多種豐富的數據類型,包括String、列表List、集合Set、有序集合SortedSet及哈希Ha

原创 圖片文件打包下載

圖片文件打包下載 最近工作遇到一需求,讓我把用戶想要的圖片下載下來,並打包成壓縮包。當用戶沒選擇時,就下載所有的圖片。由於感覺很有意思,便做一下學習總計。 首先說一下,製作的思路。前端監聽了table的checkbox屬性,當點

原创 JUC併發編程學習(十三)-學習Stream流的使用

說到Stream便容易想到I/O Stream,而實際上,誰規定“流”就一定是“IO流”呢?在Java 8中,得益於Lambda所帶來的函數式編程,引入了一個全新的Stream概念,用於解決已有集合類庫既有的弊端。 傳統集合的