原创 代理模式之簡單的動態代理

目錄 目錄 動態代理定義 重點類和接口 代碼示例 代碼 代碼運行截圖 Java 動態代理具體有如下四步驟 美中不足 動態代理定義: 所謂Dynamic Proxy是這樣一種class:它是在運行時生成的c

原创 OAuth2.0認證和授權原理

特別好的一個博客: http://www.ruanyifeng.com/blog/2014/05/oauth_2_0.html http://blog.csdn.net/alonesword/article/details/12

原创 設計模式第一講

一、設計模式的分類 總體來說設計模式分爲三大類: 創建型模式,共五種:工廠方法模式、抽象工廠模式、單例模式、建造者模式、原型模式。 結構型模式,共七種:適配器模式、裝飾器模式、代理模式、外觀模式、橋接模式、組合模式、享元模式。 行

原创 (有趣)把文字隱藏到圖片中

你可以下載此圖片將文件格式由jpg轉換爲txt,用記事本打開即可,就會看到最後一行你加入的信息 建立一個文本文件(.txt),把要寫的內容寫到裏面。注意,在前面要空一兩行,不能起頭就寫東西,否則第一行的內容會丟失。 建立或找一

原创 NDK開發之 IDE(Eclipse)配置

在上次 【NDK開發之環境的搭建和開發第一個NDK程序 】文章中,我們使用javah編譯生成頭文件(什麼什麼.h)以及使用ndk-build生成不同平臺下的鏈接庫文件(什麼什麼.so)都是在cmd命令行中執行,這樣太麻煩了,E

原创 NDK開發之環境的搭建和開發第一個NDK程序

學習NDK開發需要知道的幾個概念: 什麼是NDK(Native Development Kit)? Android官網上這樣介紹: The NDK is a toolset that allows you to implem

原创 創建者模式之工廠方法模式

工廠方法模式 模式分析 工廠方法模式是簡單工廠模式的進一步抽象和推廣。由於使用了面向對象的多態性,工廠方法模式保持了簡單工廠模式的優點,而且克服了它的缺點。在工廠方法模式中,核心的工廠類不再負責所有產品的創建,而是將具體創建工作交給子類

原创 最長公共子串 Longest Common SubString

給定兩個字符串,求出它們之間最長的相同子字符串的長度。 子串要求字符必須是連續的,但是子序列就不是這樣了。。 子序列跟子串的求法類似,都是使用動態規劃的思想,s1每次增加一個字符,看與s2當前位置的字符是不是相同,如果相同做相應的處理,如

原创 算法的時間複雜度和空間複雜度

(一)算法的時間複雜度 時間頻度: 一個算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個算法都上機測試,只需知道哪個算法花費的時間多,哪個算法花費的時間少就可以了。並且一個算法花費的時間

原创 最大子序列和問題

給定一整數序列A1, A2,… An (可能有負數),求A1~An的一個子序列Ai~Aj,使得Ai到Aj的和最大 例如:整數序列-2, 11, -4, 13, -5, 2, -5, -3, 12, -9的最大子序列的和爲21。對於這個

原创 最長增長子序列 LIS

給定一個長度爲N的數組,找出一個最長的單調遞增子序列。 例如:給定數組A{5,6,7,1,2,8},則其最長的單調遞增子序列爲{5,6,7,8},長度爲4。 一種思路是將其轉換成LCS問題:將A數組排序後:A’{1, 2, 5, 6, 7

原创 創建者模式之簡單工廠模式

簡單工廠模式 簡單工廠模式的要點在於:當你需要什麼,只需要傳入一個正確的參數,就可以獲取你所需要的對象,而無須知道其創建細節。 代碼 Product類:一般是抽象類或接口 interface Person { publi

原创 八大排序 --選擇排序 之 【堆排序】

堆排序(Heap Sort)藉助於完全二叉樹結構進行排序,是一種樹型選擇排序。 在直接選擇排序時,爲從n個關鍵字中選出最小值,需要進行n-1次比較,然後又在剩下的n-1個關鍵字中選出次最小值,需要n-2次比較。在n-2次的比較中

原创 八大排序 第一章 【開始】

我先寫比較常用的排序算法 先放一張圖: 排序的分類 穩定排序和不穩定排序: 穩定排序和不穩定排序:假設Ki=Kj(1≤i≤n,1≤j≤n,i≠j),且在排序前的序列中Ri領先於Rj(即i < j)。若在排序後的排序中Ri仍領先於

原创 八大排序 -- 插入排序 之 【直接插入排序】

插入排序策略: 將無序子序列中的一個或幾個記錄“插入”到有序序列中,從而增加記錄的有序序列的長度。 直接插入排序的策略是: 一共要進行n-1趟排序; 在第p趟,我們將位置p上的元素向左移動,直到它在前p+1個元素中的正確位置被找到的地方