原创 Jenkins安裝及問題

Jenkins安裝其實比較簡單,主要包括下面的兩步: 1)在官網http://jenkins-ci.org/上下載最新的安裝包jenkins.war; 2)執行安裝命令:java -jar jenkins.war 雖然上面簡單的兩步基本上

原创 Java虛擬機之體系結構

       Java虛擬機是運行java程序的載體。每一個java程序,都會啓動一個單獨的Java虛擬機。虛擬機之間有自己獨立的空間,相互之間不會干擾。那麼,java程序的class文件是如何在虛擬機上運行的呢?我們先了解一下Java虛

原创 實例理解IoC

         控制反轉(IoC:Inversion of Control)是Spring框架的核心,主要用來減少對象間的耦合問題。Martin Fowler曾提問:哪方面的控制被反轉了?他總結是依賴對象的獲得被反轉。因此,他給控制反轉

原创 JUnit 4的參數化測試

最近在研究TestN與JUnit 4的優劣勢。在測試JUnit 4的@Parameters的時候,遇到initializationError的錯誤。所以,想徹底研究了一下這個問題出現的原因,並找出解決方法。 問題描述: 之前使用JUnit

原创 Java虛擬機之對象的生命週期

       要在JVM的堆中創建某類型的實例化對象,必須先完成該類型的加載、連接和初始化。因此,對象的生命週期只是類生命週期中的使用階段,而類的生命週期要比對象的生命週期要長。對象的生命週期開始於類的實例化,中間經歷使用階段,結束於對象

原创 Java虛擬機之垃圾回收

      內存作爲程序運行時非常重要的一個系統資源,直接影響到程序的正常運行和程序性能。C/C++需要程序員顯式地分配和釋放內存,這不僅給程序員帶來工作負擔,而且還會給程序帶來內存錯誤訪問和泄露的安全隱患。Java的垃圾回收能夠自動地

原创 TestNG測試帶參構造函數的類

       今天被同事問到一個問題,問題描述如下:        一個測試類,只有一個帶參構造函數。在帶參構造函數上加@Test,同時加@Parameters註解從testng.xml中傳遞參數。爲保證測試函數在帶參構造函數之後執行,所

原创 Java虛擬機之連接模型

       Java程序在運行之前,每個類和接口都是獨立的class文件。JVM是怎樣裝載和解析這些class文件,使它們之間能夠相互關聯呢?下面我們來深入研究Java體系結構中非常重要的一方面——連接模型。        Java程序

原创 Java虛擬機之類的生命週期

    Java作爲一種面嚮對象語言,類是其非常重要的組成部分。Java程序經過編譯之後,每個類或接口都會對應一個class文件。Java類型的生命週期就是指一個類型的class文件從被JVM加載到被JVM卸載的全過程。類型的生命週期一般

原创 TestNG的參數化測試

軟件測試往往需要測試大量的數據集,這樣才能保證軟件的穩定性和魯棒性。JUnit沒有提供方便傳遞測試參數的機制,所以,針對每個測試數據集,都需要單獨寫代碼進行測試。這樣浪費很多時間和精力重複寫測試代碼,它們只是參數不一樣,測試邏輯完全一樣。

原创 將JUint 4轉化爲TestNG

       對於大規模軟件的測試,TestNG在很多方面的確優於JUnit 4。在項目開發初期,可能選擇JUnit 4進行測試,但是到軟件開發到一定階段後,逐漸發現JUint 4不能滿足更高的要求。此時,使用TestNG可以更好地對軟件

原创 Java虛擬機之線程同步

        對於多線程,我們更多地是在操作系統中接觸到這個概念,但是Java卻在語言級支持多線程,這也是Java語言的一大優勢。Java所使用的線程同步機制是監視器。 1. 監視器 Java監視器支持兩種線程同步:互斥和協作。互斥:

原创 Jenkins安裝plugin

Jenkins支持很多的plugin,這些plugin極大地豐富了Jenkins的功能。安裝plugin有兩種方式:自動安裝和手動安裝。 1.自動安裝 這種方式非常簡單,但前提是Jenkins必須連接網絡。 通過瀏覽器進入Jenkins界

原创 玩轉Eclipse — 爲懶人準備的Java Code Templates(持續更新中...)

        在之前的一篇博客《玩轉Eclipse — 自動代碼生成的Java Code Template》中詳細介紹了,如何利用Java Code Template自動地快速生成具有一定規律、可以模板化的代碼。一個簡單的Content

原创 玩轉Eclipse — 自動代碼生成的Java Code Template

        當代碼寫到一定程度之後,就會發現很多代碼都被重複地敲了N多遍,甚至毫不誇張地說:閉着眼睛都能敲出來。大量地敲這些重複地代碼,除了鍛鍊敲鍵盤的速度,基本上沒有其他益處,但是長期下來會浪費很多時間,降低了軟件開發的效率。例如: