原创 Java_HashSet工作原理

This class implements the Set interface, backed by a hash table (actually a HashMap instance). It makes no guarant

原创 Java_LinkedHashMap工作原理

Hash table and linked list implementation of the Map interface,with predictable iteration order. This implementati

原创 Java_LinkedList工作原理

Doubly-linked list implementation of the List and Deque interfaces. Implements all optional list operations, and

原创 synchronized鎖優化前傳-Java對象結構解析

我們經常會說到synchronized是一把重量級的鎖,難道是因爲這把鎖有幾斤?我們也常聽到說,在JDK1.6中對其進行了優化,那麼又是怎麼實現的?想了解這些,我們必須先詳細的瞭解Java對象的結構。     一:Java對象,請掀起你

原创 Java-try_catch_finally中帶有return語句的執行順序

我們知道,在try_catch_finally塊對異常進行捕捉時,一定會執行到finally塊中的語句。看下面例子: Test1:(try語句中有return,finally中沒有) public static void

原创 struts2的啓動流程與請求流程

從點擊服務器(這裏說到的服務器爲tomcat)的start來啓動服務,到對服務器發出請求,中間經歷了一個怎樣的過程? 啓動流程: WEB服務器啓動: 1- 加載解析 $CATALINA_HOME/conf/web.xm

原创 Struts2中OGNL的解析

OGNL是Object Graphic Navigation Language的縮寫,顧名思義,對象圖導航語言。它是struts2框架的默認的表達式語言。 通過OGNL,我們可以在jsp的頁面中很方便獲取一些我們所需要的值。那麼

原创 Java_LinkedHashSet工作原理

Hash table and linked list implementation of the Set interface, with predictable iteration order. This implementa

原创 Java線程之Timer

很多時候,我們需要週期性的執行某個任務,在JDK1.5之前,有一個Timer類。其官方文檔中這樣描述一種工具,線程用其安排以後在後臺線程中執行的任務。可安排任務執行一次,或者定期重複執行其執行任務的時候,需要調用schedule方

原创 Java_ArrayList的工作原理

Resizable-array implementation of the List interface. Implements all optional list operations, and permits all ele

原创 Java併發編程之線程池

線程是一種稀缺的資源,如果對於每一個任務都來創建一個新的線程來處理,不僅會消耗系統的資源,還會是降低系統的穩定性。使用線程池能夠統一的對線程分配與管理。 ——-類結構圖 1-在接口Executor中,只有一個void exec

原创 Java併發編程之synchronized解析

初學Java多線程的時候,遇到需要線程同步的地方,總是會用到synchronized關鍵詞。很簡單的就是幫助我們實現預想的“效果”。殊不知,synchronized是一個重量級的鎖,使用不當的話其實會使我們程序執行的效率大打折扣。

原创 Java併發編程之線程狀態與創建線程的方式

在Java併發編程中,線程所處的狀態以及創建線程的方式算是’開學第一課’了。而從本文開始,我將對Java併發做一個系統的認識。話不多說,開始進入主題。 一:線程狀態 在Thread類中詳細的枚舉了線程的狀態,如下: public

原创 Spring源碼分析之createBean主流程分析

我們知道,在調用getBean獲取bean實例的實例,首先會從緩存中獲取bean實例,如果沒有獲取到,就會去創建bean的時候。關於獲取bean實例,可以參考Spring源碼分析之getBean主流程分析,而本文將會對創建bean實例的主

原创 Spring源碼分析之getBean主流程分析

當我們通過向Spring容器獲取某個bean的時候,總是調用Spring中重載的各種getBean方法。那麼,getBean中的流程是什麼樣的? 通過本文,你將對getBean方法的主流程有一個詳細的認識。 入口當然是getBean方法: