原创 Dubbo(原理淺析篇)

dubbo spi擴展 dubbo擴展利用java的spi機制,使高層引用底層,用戶可以通過spi擴展dubbo。 java spi 通過在META-INF目錄創建services文件夾,然後以接口全限定名作爲文件名,多個實現類的

原创 java常用集合類原理

以下集合講解沒有指定jdk版本默認都是jdk8 ArrayList 線程不安全。 基於一個Object[]數組實現,默認數組是個空數組,可以插入空數據,可以隨機訪問。如果要找到是否存在某個值,需要遍歷數組匹配,時間複雜度是O(n)。由於通

原创 算法-知識點總結(持續更新中)

1. 位圖法  bimap算法 應用場景:快速在大量的數中查找一個數、去除重複的數 優點:節省內存、查找速度快 假設有1億個數,要在1億個數裏面找到是否存在666這個數,那麼可以構建一個bitmap結構。用一個數組存0、1,將這一億個數存

原创 jdk堆內存監控命令

jstat 命令詳解可參考:  https://blog.csdn.net/maosijunzi/article/details/46049117 jstat -gc  pid 1000 10 看gc情況  1000表示1秒展示一次,10

原创 springboot restTemplate配置

spring template配置示例 @Bean public RestTemplate restTemplate() { SimpleClientHttpRequestFactory requestF

原创 http、https

http 超文本傳輸協議,用於萬維網傳輸數據制定的協議,最初是爲了提供一種傳輸HTML頁面的方法。 特點 無狀態(每次連接都是相互獨立的、相互不影響)、 無連接(每次連接處理完就斷開連接)、 應用層協議。 爲了解決無連接多次請求

原创 git配置(二)

1.實用配置,ssh登錄服務器時 免輸入ip和端口,直接ssh配置的host即可登錄服務器 編輯配置文件 vim ~/.ssh/config 配置例子如下 Host test1 Hostname 127.22.22.2

原创 java線程(五) concurrent包

1 . 原子類 原子基本數據類型。AtomicInteger、AtomicLong、AtomicBoolean 支持cas設置值,自增等操作。 將基本數據類型的value設置爲volatie保證可見性 AtomicInteger

原创 數據結構(一)樹型結構

只總結一些知識點,不包含代碼和畫圖,相關畫圖推薦相關文章鏈接。 滿二叉樹 定義: 一棵深度爲k,且有2^k-1個節點的樹即爲滿二叉樹。即葉子節點都在同一層,除了葉子節點外的所有節點都有兩個子節點。 第n層的節點數:2^(n-1) 總節點數

原创 樹型算法題解

樹結構如下 public class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int x) { va

原创 spring ioc原理淺析

ioc控制反轉 傳統創建對象,需要在用到的地方new對象,如果一個類的創建方式發生改變,那麼所有調用到的地方都要改動。 spring基於di依賴倒置的思想,通過ioc控制反轉將bean的創建、初始化、銷燬生命週期都交給spring

原创 linux 定時任務、定時刪除歷史文件

1.尋找創建超過一段時間的文件並刪除 -mtime  +1  表示超過一天的文件 -mmin +1 表示超過1分鐘的文件 -name 指定文件名 -exec 執行指定命令。  {} 表示一個佔位符,作爲find到的文件佔位,\;表示一個分

原创 java線程(四) 線程池原理

線程池 作用:限制線程數,管理線程、避免頻繁創建和銷燬線程造成性能損耗 ThreadPoolExecutor 作用 封裝線程池的一系列邏輯,通過該類可創建線程池。 構造參數 corePoolSize 核心線程數,有任務時纔會

原创 java線程(一)基礎知識點

1. 內存模型 內存劃分 JMM規定了內存主要劃分爲主內存和工作內存兩種。主內存和工作內存只是jvm規範劃分的兩個抽象概念,爲了屏蔽不同處理器的內存處理差異制定的規範。跟JVM內存模型(堆、棧、方法區)是在不同的層次上的描述,如果要對應起

原创 jvm類加載、內存劃分、GC機制

類加載流程 加載->驗證->準備->解析—>初始化。解析不是固定順序,其他步驟都是固定的順序。 加載:獲取類的字節流,將類信息存儲到方法區,在堆中生成該類的class對象指向類信息 驗證:類似編譯期的驗證。驗證類文件格式、類的版