原创 Java 線程池

1、線程池 Java中的線程池創建實際都是一個方法。 ThreadPoolExecutor(corePoolSize, maximumPoolSize, keepAliveTime, unit, workQueue) 2、示例代碼 pu

原创 Java 查詢Word是否存在關鍵字,並保留word路徑到txt

1、查詢文件夾下的Word文件是否存在某些關鍵字,如果存在將Word文件的路況保存到txt中。 2、示例代碼 import java.io.File; import java.io.FileOutputStream; import ja

原创 Spring 攔截器

1、作用 攔截器主要作用是攔截請求病進行相應的處理。 2、定義一個攔截器 1.自定義一個實現Interceptor接口。 2.在web.xml中註冊攔截器。 3、與過濾器的區別 1.攔截器是基於java反射機制的,過濾器是基於函數回調的。

原创 LinkedHashMap實現LRU算法

LRU算法:最近最少使用,淘汰時間最長未被使用的數據。 實現思路: 1.創建一個隊列,並設置隊列的閾值。 2.將數據按順序存放到隊列中,新增數據時將數據添加到隊列尾部,如果隊列超過閾值,則從隊列頭部刪除數據。 3.LinkedHashMa

原创 Spring Eclipse+Tomcat 熱部署

1、目的 項目運行時修改不需要重啓。 2、實現原理與區別 熱部署:在服務器運行時重新加載部署整個應用。 熱加載:在運行時重新加載class。 3、設置 1.修改Tomcat服務的server.xml文件中reloadable屬性爲true

原创 Spring 事務機制

1、事務配置 編程式事務 聲明式事務 2、事務屬性 事務傳播行爲:int getPropagationBehavior(); 事務隔離級別:int getIsolationLevel(); 事務超時時間:int getTimeout();

原创 DispatcherServlet 加載過程與請求過程

1、DispatcherServlet加載過程 1.contextLoaderListener監聽器初始化完畢後,開始初始化web.xml中的Servlet,DispatcherServlet實際也是一種Servlet,作爲一個前端控制器

原创 Spring 加載過程

1、web項目 對於一個web項目,其部署在web容器中(JBoss,Tomcat),這個容器會提供一個全局的上下文環境(ServletContext),它可以爲Spring IOC提供宿主環境。 web項目啓動時首先會讀取web.xml

原创 JVM 調試命令

1、需要注意的重點信息 新生代對象增長的速率 Young GC的觸發頻率 Young GC的耗時 每次Young GC過後有多少對象是存活下載的 每次Young GC過後有多少對象進入老年代 老年代對象增長的速率 Full GC的觸發頻率

原创 CyclicBarrier 源碼學習

1、CyclicBarrier 的作用 一種同步輔助,允許一組線程彼此等待到達一個共同的障礙點。cyclicbarrier在包含固定大小的線程的程序中非常有用,這些線程有時必須彼此等待。這個屏障被稱爲循環,因爲它可以在釋放等待的線程之後重

原创 JVM 模擬Young GC及日誌分析

本篇文章主要是模擬一次JVM發生一次Young GC的情況後對日誌進行分析,爲後面的模擬Full GC做準備。 github地址 1、JVM的參數設置 JDK1.8 -XX:InitialHeapSize=10485760 初始化堆大小

原创 Semaphore 源碼學習

1、Semaphore 的作用 一種計數信號量。通常用於限制能夠訪問某系資源的線程數。 維護一組許可證,每個 acquire 將獲取一個許可證,每個 release 會釋放一個許可證。 2、核心結構 //所有機制通過AbstractQu

原创 JVM 模擬Full GC

本篇文章主要是模擬JVM發生Full GC的情況。 github 1、JVM的參數設置 JVM參數設置(JDK1.8) -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520

原创 JVM 模擬對象進入老年代的四種情況

JVM 模擬對象進入老年代的四種情況 github 1、JVM參數設置 JVM參數設置(JDK1.8) -XX:InitialHeapSize=20971520 -XX:MaxHeapSize=20971520 -XX:NewSize=

原创 JVM GC優化思路

JVM的GC一般分爲Young GC和Full GC,而Full GC由於STW(stop the world)需要消耗的時間一般情況比Young GC要多很多,所以GC優化思路是儘量減少Full GC的頻率,減少STW以提升性能。 現在