原创 用代碼和圖告訴你VisualVM中的線程的幾種狀態

VisualVM是壓測過程中經常用到的一個工具,但是在分析過程中對其中的幾種狀態瞭解的不太清楚,通過查閱資源和代碼中測試,基本搞懂了這些狀態的區別。 狀態說明: Running 處於這種狀態的線程對於操作系統而言,要麼是正在

原创 netty入門篇

先說好,這裏所說的入門篇,並不是教你們如何入門,而是在我研讀部分源碼後,寫了一個基本的demo,實現了客戶端和服務端的交互,在放出我寫的源碼之前,寫簡單介紹下netty中的一些核心概念和核心類。 NIO模型 NIO是相對於BIO的

原创 mybatis中的主要設計模式應用

mybatis中包含很多中設計模式,主要包括:建造者模式、工廠模式、單例模式、模板方法模式、組合模式、代理模式、適配器模式、裝飾器模式、迭代器模式。 Builder模式 對象的構建過程過於複雜,可以使用建造者模式,將對象的創

原创 談談HashMap結構那些事~(1.8版本)

1.8版本之前的HashMap結構也沒仔細看過,趁着有時間把1.8版本HashMap結構梳理了一遍。下面就是幾個總結。 HashMap底層就是藉助於數組+鏈表+紅黑樹實現的。 其中紅黑樹是1.8中引入的,引入的目的就是防止數組中單

原创 DBCP2的核心參數配置

1、核心的包 <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-pool2</artifactId> <version>${c

原创 ConcurrentHashMap思維導圖(1.8版本)

思維導圖 核心操作 put 主要步驟: 1、判斷key或者value是否爲null,是的話拋出異常; 2、計算key的hashcode; 3、判斷容器table是否爲null,或者長度爲0,是的話進行初始化工作; 4、定位key

原创 常用排序算法

基本概念介紹 穩定排序 對於待排序的數據,如果有元素a和b相等,如果排序前a在b的前面,在排序後a還是在b的前面,則稱之爲穩定排序。 非穩定排序 對於待排序的數據,如果有元素a和b相等,如果排序前a在b的前面,在排序後a可能出現

原创 spring的初始化過程

spring是什麼?爲什麼需要spring? spring是一個容器框架,bean的創建和管理都交給spring來管理。spring中幾個核心概念。 IOC(Inversion of Control):控制反轉 傳統的代碼中對

原创 SynchronousQueue數據結構基本介紹

SynchronousQueue 特點 是阻塞隊列BlockingQueue的一種實現,也就是方法具有BlokingQueue的基本性質; 和ArrayBlockingQueue區別在於,ArrayBlockingQueu

原创 二十三種設計模式-橋樑模式

主要的作用 將抽象與實現解耦,可以讓抽象和實現獨立的變化。 關鍵角色 (1)Abstraction:抽象角色,這個角色提供的接口是面向調用方的,其中會保持一個對實現化對象的引用,其中的真正實現就是由Implementor的實現

原创 二十三種設計模式-訪問者模式

訪問者模式(Visitor) 在現實世界中,訪問者又叫做拜訪者。客人到主人家做客,客人就是一個拜訪者。對主人來說,你來與不來,我都在那裏。 什麼是訪問者模式 訪問者是一種行爲型模式,主要是對象自身的結構和對象的具體行爲相分離,通過

原创 BST、AVL、B-、B+、紅黑樹的基本定義和結構

BST 即二叉搜索樹 基本定義: 對於任意一個節點,若有左子樹,則左子樹的所有節點都小於當前節點;若有右節點,則所有右節點都大於當前節點,即滿足遞歸定義。 AVL 即平衡二叉搜索樹 基本定義: 二叉搜索樹(BST)的性質,

原创 計算機系統的學習-筆記1

計算機系統漫遊 1、併發和並行 併發:指一個同時具有多個活動的系統 並行:指的是用併發來使一個系統運行的更快。 2、計算機三個層次實現併發和並行 (1)線程級併發 (2)指令級並行 通過藉助於流水線(pipelining)技術,將

原创 spring aop的實現代碼

跟蹤spring aop的實現 aop核心概念介紹 什麼是切面編程 在運行時,動態地將代碼切入到類的指定方法、指定位置上的編程思想就是面向切面編程。 Aspect(切面) 什麼是切面呢?切面這個詞感覺還是挺抽象的,咱們可能

原创 二十三種設計模式-原型模式

原型模式 原型模式屬於對象的創建模式。通過給出一個原型對象來指明所有創建的對象的類型,然後用複製這個原型對象的辦法創建出更多同類型的對象。這就是原型模式的用意。 這種形式涉及到三個角色: 客戶(Client)角色:客戶類提出