原创 開發中的常見git操作【很全】

一些常規操作 一、分支操作 1.1、拉取遠程的某個分支的幾種方式 拉取之前,可以使用git branch -a查看所有分支(或者使用git branch -r 查看所有遠程分支)。 git checkout -b lBranch

原创 源碼解析—java線程的工作單元及執行機制

前言 java 將工作單元與執行機制分開,任務通過Callable、Runnable等定義,而執行機制由 Executor 和 Executor 基礎上的 ExecutorService 來定義,更是直接提供了完備的執行機制,即

原创 從一些例子看 mysql innodb 在 RR 隔離級別的 next-key 鎖的行爲

前言 如果希望直接獲取結論,請看末尾【一些結論】模塊 mysql 版本 5.7 引擎 innodb 隔離級別 RR (RepeatableRead) 需要了解 mysql 的 next-key 鎖(間隙鎖 + 索引記錄鎖) 本文

原创 springmvc(三)Handler、HandlerMapping和HandlerAdapter

前言 DispatcherServlet 通過 HandlerMapping 查找到 Handler,然後委託 HandlerAdapter 去執行 Handler,生成 ModelAndView。 爲什麼需要 Handler、H

原创 cglib的簡單使用

一、前言 最近在看Spring的源碼,其中有牽扯到cglib的相關內容,遂簡單記錄下cglib是如何使用的 二、原理(節選自網絡) CGLIB原理:動態生成一個要代理類的子類,子類重寫要代理的類的所有不是final的方法。在子類中

原创 jdk8 java.util包整體學習(二)concurrent.atomic包下的類

前言 java.util.concurrent.atomic 包下共有 17個類。統計代碼如下 public static void main(String[] args) throws IOException {

原创 jdk8 java.util包整體學習(一)思路

前言 最近面試,發現對日常開發使用的 jdk 的一些工具類的方法還不夠熟悉,有些方法甚至不知道,所以打算儘量先把 util 中所有的工具類過一遍。 計劃 儘量按照包來總結,如果某個包下類特別多,則先按照字母順序來看,最後把某個包

原创 幾個場景下,從 java 線程棧信息看線程狀態的變化

準備 爲了方便,直接使用 visualvm 附一張java 線程狀態圖(來源於知乎:java線程運行怎麼有第六種狀態? - 山月風成的回答 - 知乎 https://www.zhihu.com/question/56494969

原创 從源碼探究 1.8 ConcurrentHashMap 的幾個使用過程中想到的問題

前言 水平有限,儘量深入 主要關注的點 put 方法相關 put 方法做了哪些事 如何保證併發 put 安全(cas 和 synchronized 的使用) 擴容相關 擴容過程 擴容如何保證併發安全性 get 方法線

原创 RocketMQ 入門學習筆記

前言 本文主要側重點在 java 的客戶端,具體的如何搭建 RocketMQ 服務端不在本文討論範圍內 一、一些概念 1.1、rocketMQ 的組成 name server 用來保存 Broker 相關 Topic 等元信息

原创 AbstractQueuedSynchronizer 原理 & 源碼

閒話 看ThreadPoolExecutor 源碼的時候,其中 Worker 類是基於 AbstractQueuedSynchronizer 構建的,所以順便把這個類一起看了。另外,這個類也是ReenTrantLock 和 Sem

原创 java nio—buffer的簡單介紹以及堆外內存的分析

作用 NIO提供了一系列buffer類,用作緩存。可以直接從channel中讀數據到buffer,也可以從buffer中寫數據到channel。緩衝區本質上是一塊固定大小的內存,其作用是一個存儲器或運輸器。這塊內存被包裝成NIO

原创 一個支持跨域訪問的web filter

package com.souche.evaluate.dforce.filter; import javax.servlet.Filter; import javax.servlet.FilterChain; import ja

原创 sax和dom方式解析xml

一、sax解析xml 1.1、sax概述 SAX解析方式會逐行地去掃描XML文檔,當遇到標籤時會觸發解析處理器,採用事件處理的方式解析XML (Simple API for XML) ,不是官方標準,但它是 XML 社區事實上的標

原创 整理一些spring常見的擴展點

一、各種後處理器 1.1、BeanDefinition與BeanFactory擴展 1.1.1、BeanDefinitionRegistryPostProcessor接口 /** * Extension to the stand