原创 【排序算法】冒泡排序的實現與分析

以升序排序爲例: 實現方法 將所有的待排序的n個數字放入數組中。從第1個數字開始遍歷數組,兩兩比較數組中的元素,如果前者大於後者,則將兩者位置進行交換。一次遍歷後,最大值將排在最後一個位置上。然後對前n-1個元素做第二次遍歷和交換,遍

原创 java中的參數傳遞與引用

有些java書籍在介紹java中的傳參時都說,不論是基本類型還是對象類型,都是傳值。這種說法不能算錯,但往往讓很多初學java的人感到很困惑。因爲這裏所說的傳值與c++中簡單變量的傳值已經不是同一個概念。 對於java傳參,我覺得更準確一

原创 C#中包含子類集合的類的Equals方法重寫

最近的項目中,對於單元測試,我們使用NMock來模擬測試方法中依賴的方法的行爲。我們在定義模擬方法的參數值和返回值時遇到了問題。當參數或返回值爲一個對象時,我們必須重寫它的Equals方法來使模擬值與實際的值匹配。 因此我會爲每個實體類重

原创 java類的構造器

提供構造器可以確保在創建對象時,編譯器自動調用構造器進行初始化。 java中採用了構造器與類名相同的機制,以確保編譯器可以知道應該調用哪個方法。 使用構造器提高了代碼的可讀性,也有助於減少錯誤。  構造器是特殊的方法,它沒有返回值。 如果

原创 java三目運算符boolean?x:y中的類型轉換

下面的代碼是面試寶典上的一道題目: int a=5; System.out.println("a="+((a<5)?10.9:9)); 這段代碼的輸出是9.0。因爲三目運算符中有一個10.9,java會根據運算符的精度類型進行自動類

原创 什麼是java泛型

什麼是泛型呢? 我們首先寫一個最簡單的泛型類來說明: public class Generics<T> { //T是type的簡稱,可以使用任何名稱代替 private T o; //泛型成員變量 public Generics(T

原创 Java中的Set與hashCode

我們知道Java中的Collection分爲List和Set。List中的元素是有序和可重複的,而Set中的元素無序且不可重複。 由於Set中的元素是不可重複的,在每次向一個Set中插入新的元素時,如果沒有hashCode,就需要遍歷整

原创 人生最不值得你去做的30件事

瑪麗亞·羅賓森(Maria Robinson)說過,"沒有人可以回到過去重新開始,但每一個人都可以從現在開始創造全新的未來。"所言極是,不過在你開始

原创 java中的靜態變量、靜態方法與靜態代碼塊

我們知道類的生命週期分爲裝載、連接、初始化、使用和卸載的五個過程。 其中靜態代碼在類的初始化階段被初始化。而非靜態代碼則在類的使用階段(也就是實例化一個類的時候)纔會被初始化。 靜態變量 可以將靜態變量理解爲類變量(與對象無關),而實例

原创 【排序算法】雞尾酒排序的實現與分析

以升序排序爲例: 算法思路 雞尾酒排序即雙向的冒泡排序,是冒泡排序的輕微變形。 它的主要思路是對於一組無規律排放的數字,先找到最大的數字放到最後一位,在反向找到最小的數字放到第一位。然後再找第二大的數字放到倒數第二位,再找第

原创 單例模式(Singleton Pattern)

單例模式確保一個類只有一個實例,並提供一個全局訪問點。 某些對象我們只需要一個,比如線程池、緩存、註冊表等等。如果這些類擁有多個實例,可能會產生很多問題。 使用單例模式可以確保我們使用的這些全局資源只有一份。 一個經典的單例模式的實現:

原创 Java中的枚舉類型

enum關鍵字是一個看似很小的特性。使用這個關鍵字,我們可以創建一個枚舉類型。 事實上,在使用enum關鍵字創建新的枚舉類型時,其實是創建了一個java.lang.Enum 類的子類。枚舉中每個指定的值都可以看做是該類的一個實例。 不過我

原创 各種排序算法及其複雜度

穩定的  冒泡排序(bubble sort) — O(n^2)   雞尾酒排序(Cocktail sort,雙向的冒泡排序) — O(n^2)   插入排序(insertion sort)— O(n^2)   桶排序(bucket sor

原创 java中的垃圾回收

相對於c語言的這種由開發人員顯式的分配內存、釋放內存,如果處理不當往往會造成內存泄露的問題。java的垃圾回收機制監視java程序的運行,自動釋放不再使用的對象的內存。java使用軟指針(指向對象引用的指針)來跟蹤對象的所有引用。並使用一

原创 【算法】一個小算法的非遞歸方式的兩種實現

某幢大樓有100層。你手裏有兩顆一模一樣的玻璃珠。當你拿着玻璃珠在某一層往下扔的時候,一定會有兩個結果,玻璃珠碎了或者沒碎。這幢大樓有個臨界樓層。低於它的樓層,往下扔玻璃珠,玻璃珠不會碎,等於或高於它的樓層,扔下玻璃珠,玻璃珠一定會碎