原创 簡單的網絡協議概述

文章目錄網絡協議什麼是協議呢?認識網絡協議古代戰報傳送網絡分層網絡協議的分層總結參考 網絡協議 這一篇文章主要是概述網絡協議以及網絡協議的分層。 首先,我們來思考一個問題,如何讓兩臺計算機甚至多臺計算機之間進行通信呢?回答這個問題

原创 記一次nginx轉發的問題(http強轉成https)

問題描述 與業務方對接,業務方調用下單接口,支付成功之後,我方回調業務方。問題是業務方在nginx中配置了http強轉成https。其傳入的回調地址是http的。我方調用其回調接口時報301的錯誤。錯誤如下: <html> <he

原创 小白一看就會的Spring的resetTemplate的使用方法

寫在前面 作爲一名Java開發者,我們怎麼都繞不開調用外部接口的場景,調用的方式要麼是通過Http協議來調用,要麼是通過RPC協議來調用,通過Http協議調用的話我們就需要用到Http的Api。比較常用的有Apache的HttpC

原创 第十七篇:面試必備的線程池知識-線程池的原理

前言 上一篇我們介紹了線程池的使用,這一篇我們接着分析下線程池的實現原理。首先從創建線程池的核心類ThreadPoolExecutor類說起。 ThreadPoolExecutor類的常量 //用來存放工作線程數量和線程池

原创 第十六篇:面試必備的線程池知識-線程池的使用

前言 學習完了阻塞隊列之後,接下來,我們學習下面試必考的知識點–線程池。用過JAVA的同學一定聽過線程池的大名。下面我們就來看看這個大名鼎鼎的傢伙。 爲啥要用線程池呢? 第一個問題來了,爲啥要使用線程池呢?直接new一個線程它不香

原创 設計模式學習12----責任鏈模式

責任鏈模式定義 責任鏈模式(Chain of Responsibilty Pattern)避免請求發送者與接收者耦合在一起,讓多個對象處理器都有可能接收請求,將這些對象處理器連接成一條鏈,並且沿着這條鏈傳遞請求,直到有對象處理它爲

原创 第十一篇 隊列的學習(三) 手寫一個阻塞隊列

前言 前面我們手寫實現了一個單向隊列,一個循環隊列,今天我們再手寫實現一個阻塞隊列。顧名思義,阻塞隊列就是在普通隊列的基礎上加了阻塞功能。本文是爲了後面看ArrayBlockingQueue的源碼做的前期準備。 阻塞隊列 阻塞隊列

原创 Java基礎之Optional類(JDK1.8新特性)

定義 Optional是一個容器,它可以保存類型T的值,或者僅僅保存null,Optional類主要是用來避免空指針異常(NPE),其提供的一系列的方法配合Lambda表達式可以讓代碼更加清晰,語義化,以及避免了空指針異常的問題,

原创 第三篇:lock的學習與使用

今天我們來學習併發包下的Lock(鎖)的知識。之所以Java在有synchronized的情況下,還提供基於lock接口實現的鎖。是由於lock有一些synchronized沒有特性。可以再發生死鎖時相應中斷,釋放鎖。 lock的

原创 第二篇:原子類的說明與使用

今天我們來學習下併發包中的原子類。原子類是用來處理基本數據類型自增在併發環境下的線程安全問題而生的。下面我們就來看看原子類吧。 有哪些原子類 原子類 作用 AtomicBoolean 用於處理boolean類型數據的

原创 第五篇:HashMap的源碼分析(基於JDK1.8)

今天我們接着來學習HashMap的源碼,HashMap的數據結構與ConcurrentHashMap的數據結構相同,所以學好HashMap對後面學習ConcurrentHashMap很有幫助。 目錄 基本的全局常量 HashMap

原创 第一篇:併發容器學習開篇介紹

摘要 Java併發包(concurrent)是Java用來處理併發問題的利器,該併發包中主要有原子類,鎖(lock),併發容器類等等。本系列博客主要就是介紹併發包中一些常用的併發容器,常用的類。那麼就讓我們一起來揭開併發包的面紗吧

原创 SpringBoot 分佈式session共享方案

前言 單機環境下我們session是存儲在應用服務的內存中,但是在分佈式環境 下,這種存儲在應用服務器內存的方案顯然不能實現session共享。本次我們將介紹SpringBoot+Redis實現分佈式環境下Session共享方案。

原创 Java基礎之方法引用(JDK1.8新特性)

方法引用 方法引用是通過方法的名字來指向一個方法,方法引用可以是語言更緊湊簡潔,減少冗餘代碼。 方法引用使用一對冒號 :: 有現成的方法可以完成你想要傳遞到其他代碼的某個動作, 例如假設你希望只要出現一個定時器事件就打印這個事件

原创 第八篇:鏈表的學習:鏈表的頭插法和尾插法以及HashMap中鏈表結點的插入方式

前言 從前面的HashMap和ConcurrentHashMap的源碼分析我們可以得知,其內部的數據結構都用到了鏈表,所以,對鏈表的深入掌握非常有必要。本文將重點介紹單鏈表數據結構,然後通過代碼實現單鏈表的頭插法和尾插法。 單鏈表