原创 外部排序優化之敗者樹與勝者樹

概述: 勝者樹和敗者樹都是完全二叉樹,是樹形選擇排序的一種變型。每個葉子結點相當於一個選手,每個中間結點相當於一場比賽,每一層相當於一輪比賽。不同的是,勝者樹的中間結點記錄的是勝者的標號;而敗者樹的中間結點記錄的敗者的標號。勝者

原创 設計模式(四)———工廠設計模式的比較

簡單工廠 : 用來生產同一等級結構中的任意產品。(對於增加新的產品,無能爲力) 工廠方法 :用來生產同一等級結構中的固定產品。(支持增加任意產品) 抽象工廠:用來生產不同產品族的全部產品。(對於增加新的產品,無能爲力;支

原创 hibernate第一堂課

搭建一個hibernate框架的步驟 安裝jdk 我選擇安裝jdk 1.8。 安裝之後配置環境變量JAVA_HOME PATH 下載hibernate的jar包,這裏我選擇了hibernate 5.2.10 下載並安裝

原创 歸併排序的空間複雜度優化——手搖算法(內存反轉算法)

序言:第一次聽到這個算法感覺這個名字很有意思,甚至感覺到很高大上,仔細一看其實以前也看到過,就是字符串的三重反轉算法,只是不知道它的這個高大上的名字。 手搖算法具體是啥? 首先拋出一個問題:反轉字符串中兩塊元素的位置,該怎麼

原创 設計模式(五)-------Spring中包含的設計模式

1 簡單工廠(Simply Factory) 又叫做靜態工廠方法(StaticFactory Method)模式,但不屬於23種GOF設計模式之一,簡單工廠模式的實質是由一個工廠類根據傳入的參數,動態決定應該創建哪一個產品類。

原创 HashMap、HashTable和ConcurrentHashMap

HashTable和HashMap區別 繼承不同 public class Hashtable extends Dictionary implements Map public class HashMap exten

原创 Hash衝突

####哈希表的特點:關鍵字和它在表中存儲位置之間存在一種函數關係。這個函數我們稱爲爲哈希函數。 hash : 翻譯爲“散列”,就是把任意長度的輸入,通過散列算法,變成固定長度的輸出,該輸出就是散列值。 這種轉換是一種壓縮映射,

原创 Java 克隆

克隆 如People p=p1; 這不是克隆,而是兩個對象指向一個堆。 @Test public void test() { Teacher teacher=new Teacher("男");

原创 線程的使用方法

三種使用線程的方法 實現Runnable接口 實現Callable接口 繼承Thread類 三種方法的比較 採用繼承Thread類方式創建多線程 劣勢:已經繼承Thread不能再繼承其他父類 優勢:編寫簡單

原创 Django簡單語法

變量 使用{{ }} if/else 標籤 (支持嵌套) {% if condition %} ... display {% endif %} 或者 {% if condition1 %} ... dis

原创 HashSet的底層實現

這篇文章的來源是這樣的: 有一次面試,面試官問我HashSet的底層實現,可以使用HashMap來實現嗎? 我沒有看過啊,感覺瞬間懵逼!!! 後來一看:其實底層就是用HashMap實現的。 HashSet底層是

原创 GitHub全程指南

請參考:https://blog.csdn.net/happyduoduo1/article/details/51781800

原创 Arrays.sort()的底層實現

Java Arrays中提供了對所有類型的排序。其中主要分爲Primitive(8種基本類型)和Object兩大類。   基本類型:採用調優的快速排序   對象類型:採用改進的歸併排序 1.基本類型(以int爲例

原创 Java四種元註解

四個元註解分別是:@Target,@Retention,@Documented,@Inherited ,再次強調下元註解是java API提供,是專門用來定義註解的註解,其作用分別如下: @Target 表示該註解用於什麼地方,可

原创 Java類型擦除

什麼是類型擦除? 類型擦除指的是通過類型參數合併,將泛型類型實例關聯到同一份字節碼上。編譯器只爲泛型類型生成一份字節碼,並將其實例關聯到這份字節碼上。類型擦除的關鍵在於從泛型類型中清除類型參數的相關信息,並且再必要的時候添加類型檢