原创 HTTPS客戶端和服務端建立安全連接的握手過程

握手過程: 1.客戶端給出協議的版本號、一個客戶端生成的隨機數和客戶端支持的加密算法; 2.服務端在客戶端給出的加密算法列表中選出一種,並給出數字證書和就一個服務端生成的隨機數 3.客戶端確認數字證書的有效性,然後生成一個新的隨機

原创 Synchronized同步鎖是如何實現的

前言: 要想用好Synchronized鎖,首先得了解清楚其實現同步鎖的原理 原理解析 首先,看下其修飾代碼塊時: //關鍵字在代碼塊上,鎖爲括號裏面的對象 public void method2(){ Object o =

原创 爲什麼一般不建議使用Executors創建線程池?

前言: 阿里巴巴開發手冊併發編程這塊有一條:線程池不允許使用Executors去創建,而是通過ThreadPoolExecutor的方式,通過源碼分析禁用的原因 通過閱讀本篇文章,你將會瞭解到: 線程池的定義 Executors

原创 Dubbo常見一些概念解析

dubbo的定義 dubbo是一款高性能、輕量級的開源RPC框架,提供服務自動註冊、自動發現等高效服務治理方案,可以和Spring框架無縫集成。 使用場景: 透明化的遠程方法調用:就行調用本地方法一樣調用遠程方法,只需簡單配置,

原创 如何應對緩存穿透和緩存雪崩問題?如何解決Redis的併發競爭key問題?

1、如何解決緩存穿透和緩存雪崩問題? 問題分析:這兩個問題一般在中小型傳統軟件企業很難碰到這個問題。如果有大併發的項目,流量有幾百萬左右。這兩個問題一定要深刻考慮。 緩存穿透,即當黑客故意去請求緩存中不存在的數據,導致所有的請求都

原创 PandaABC面試題

直接上乾貨,自己面試過程中所問到的問題: 面試知識點1 、byte的取值範圍 2、io密集型多線程和cpu密集型多線程的區別以及怎麼去設計線程池? 3、對一個1-10000的數組怎麼利用有效的算法進行每個值加1 4、int a =

原创 7 常用設計模式之策略模式

本文主要講解Java設計模式之策略模式 策略模式介紹 策略模式也叫政策模式,是一種行爲型設計模式,也是父類與子類關係的一種模式。策略模式採用了面向對象的繼承和多態機制。策略模式是定義了一系列宣發並將算法封裝起來,使他們可以互相替換

原创 HTTP解析

首先說下計算機通信原理 互聯網的關鍵技術就是TCP/IP協議。兩臺計算機之間的通信是通過TCP/IP協議在因特網上進行的。實際上這個是兩個協議: TCP:Transmission Control Protocol傳輸控制協議 I

原创 springcloud中zuul和feign的應用場景和區別?

1、zuul作爲整個應用的流量入口,接收所有的請求,如app、網頁等,並且將不同的請求轉發至不同的微服務模塊,其作用可視爲nginx。 2、feign則會將當前微服務的部分服務接口暴露出來,並且主要用於各個微服務之間的服務調用。兩

原创 用Optional處理空指針

前言: 對於空指針NullPointException大家不陌生,在工作中也經常會去處理空指針。 爲了方便大家更好的處理NPE,Java8中引入了一個新類java.util.Optional。 其實 ,Optional 類的的使用

原创 關於Java8 Stream

Java8 Stream的總結 一、Stream的特性 Stream是Java 8新增的接口,Stream可以認爲是一個高級版本的Iterator。它代表着數據流,流中的數據元素的數量可以是有限的,也可以是無限的。 Stream和

原创 關於SpringSecurity

前言: 通過本篇文章你將瞭解到: SpringSecurity 中的一些核心類 使用SpringSecurity基於角色的權限校驗 SpringSecurity的不足 SpringSecurity核心類 登錄校驗流程: Us

原创 關於Java的深拷貝、淺拷貝

前言: 在 Java 開發中,對象拷貝或者說對象克隆是常有的事,對象克隆最終都離不開直接賦值、淺拷貝、深拷貝 這三種方式,其中直接賦值應該是我們最常用的一種方式吧,對於淺拷貝和深拷貝可能用的少,下面就對後面兩種方式做一些介紹 前置

原创 6 常用設計模式之享元模式(Flyweight))

享元模式的主要目的是實現對象的共享,即共享池,當系統中對象多的時候可以減少內存的開銷,通常與工廠模式一起使用 FlyWeightFactory負責創建和管理享元單元,當一個客戶端請求時,工廠需要檢查當前對象池中是否有符合條件的對象

原创 JDK1.8新特性

一、前言 其實JDK1.8的一些新特性主要還是簡化了代碼的寫法,減少了部分開發量。 二、新特性 1、default關鍵字 在java裏面,我們通常都是認爲接口裏面是只能有抽象方法,不能有任何方法的實現的,那麼在jdk1.8裏面