原创 Java ThreadLocal源碼學習

ThreadLocal源碼學習前言設計思路核心代碼後記 前言 定義:ThreadLocal是線程本地變量訪問對象。(注: 線程本地變量與當前線程綁定到一起的變量,在其他線程中無法訪問。) 作用:Java中執行任何方法都是在線程中執

原创 RoaringBitmap位圖

RoaringBitmap位圖前言Bitmap 常用場景Bitmap缺陷RoaringBitmap主要思想RoaringBitmap 數據結構整體結構圖ArrayContainerBitmapContainer後記 前言 Bitm

原创 字符串相似度算法(編輯距離算法)

編輯距離算法前言原理公式例子實現後記 前言 比較兩個字符串的相似度,通常我們會使用編輯距離算法來實現。 下面是常用字符串相似度計算的方法: 字符串相似度的幾種度量方法 原理 最小編輯距離的原理是: 比較兩個字符串,記錄一個字符串通過移

原创 平衡查找二叉樹(AVL樹)的講解與實現(JAVA版本)

平衡查找二叉樹的講解與實現前言原理二叉查找樹平衡查找二叉樹(AVL樹)實現AVLTreeDemo後記AVL樹的不足 前言 如果讓我們在一堆帶有標識的數據中,去高效查詢一個特定標識的數據,我們有幾種方法?通常我們都會知道二分查找法,二分

原创 JAVA數組二分查找

JAVA數組二分查找前言查找原理代碼實現 前言 二分查找是一種比較高效的查找方式,使用此查找方式需要先將數組進行排序,如果數組未經排序效率就會很低,所以數組是必須要經過排序的。 查找原理 Created with Raphaël 2.

原创 JAVA volatile修飾符的作用

volatile修飾符的作用前言可見性JAVA內存模型案例順序性指令重排案例 前言 volatile在多線程開發中是可以經常看到的變量修飾符,本文主要是比較淺顯的介紹volatile的作用。 在開始之前多線程併發編碼往往需要考慮這幾個

原创 JDK1.8 HashMap 學習筆記

JDK1.8 HashMap 學習筆記前言HashMap實現原理HashMap內部結構整體結構每個Hash槽中元素結構HashMap屬性說明HashMap方法說明HashMap存儲流程HashMap擴容流程寫在最後 前言   本文主

原创 CenterOS 7.4 離線安裝Docker 18.03.1

CenterOS 7.4 離線安裝Docker 18.03.1準備Docker所需要的RPM包執行安裝第一步 權限第二步 安裝第三步 服務設置 準備Docker所需要的RPM包 libsepol-2.5-10.el7.x86_64.

原创 計數排序和基數排序

計數排序 計數排序是一種非比較性排序,時間複雜度爲O(n + k),主要適用於排序的數組極大值和極小值直接的差不大的情況,如果待排序數組極值差過大,則會造成過多的空間浪費,具體原理如圖所示:   原理  實現 public voi

原创 SpringBoot RestTemplate打印http請求響應

前言 SpringBoot 的 RestTemplate是一個比較方便的http請求框架,在調試的時候我們需要查看http的request和response信息RestTemplate不會主動幫我們打印出來,但是我們可以在RestTemp

原创 歸併排序,堆排序,快速排序的講解與實現

前言 本文主要講的是歸併排序,堆排序和快速排序的原理與實現。當然我的實現不一定不是最好的,如果有更好的實現大家也可以在評論區貼出更好的實現代碼。 時間複雜度的計算:時間複雜度大概的意思是以每一條執行的語句爲單位,一個排序算法在隨着數據的增

原创 Swagger2 關於Map參數在API文檔中展示詳細參數以及參數說明

前言 本文主要解決的問題是 Swagger2 (SpringFox)關於Map參數生成的API文檔中沒有詳細Json結構說明,問題如下圖所示: 此種方式生成的Api文檔中的請求參數如下: 如果是這樣的參數類型的會讓查看API的人員無法

原创 Android自定義View鏈接系統輸入法(自定義驗證碼組件)

前言 有些需求需要我們自定義View,這個View需要有接收系統鍵盤輸入數據的能力,相信有些同學都是使用onKeyDown的監聽方法實現的,但發現有些輸入法獲取不到數據。其實這個原因是onKeyDown方法主要是監聽物理按鍵的響應,對於虛

原创 Android 自定義密碼鍵盤組件,支持多點觸控

前言 現在對於前端APP的安全要求越來越高,所以很多APP都開發了自己的數字鍵盤,這麼做對於安全性的提升個人總結有如下幾點: 防止第三方鍵盤出現BUG,泄露用戶支付密碼。 自定義鍵盤可以根據自己的算法提高加密等級,比如的密碼是123456

原创 Android java.lang.SecurityException: Failed to find provider異常說明

java.lang.SecurityException: Failed to find provider null for user 0; expected to find a valid ContentProvider for this