原创 DataStructures:algorithm analysis

1.算法是解決問題的指令集。單算法給定時,可以計算算法所用的時間或者空間資源。算法分析就是計算算法的時間和空間複雜度,並對算法做出優化,獲取對問題更有效的計算方法。 2.當T(N)=O(f(N))(念大O),f(N)是T(N)的上

原创 數字簽名

通俗易懂的數字簽名解析鏈接: http://www.cnblogs.com/1-2-3/archive/2007/09/17/colloquialism-digital-certificate-part1.html http://ww

原创 RSA

RSA加密原理超經典解析鏈接: http://www.ruanyifeng.com/blog/2013/06/rsa_algorithm_part_one.html http://www.ruanyifeng.com/blog/201

原创 AndroidKeyStore的使用

密碼算法使用: 1 對稱加密:本地隨機的密鑰 方案:直接使用androidstore生成隨機數,隨機數做密鑰 1.1 AES_CBC android 實現 函數主體: public class AesCbcAlg{ priva

原创 JVM、GC的一些事

JVM的基本結構一般如下圖所示: JVM主要包括四個部分: 1.類加載器(ClassLoader):在JVM啓動時或者在類運行時將需要的class加載到JVM中。(右圖表示了從java源文件到JVM的整個過程,可配合理解。 關於類的

原创 關於 23 種設計模式的有趣見解

1、FACTORY—追MM少不了請吃飯了,麥當勞的雞翅和肯德基的雞翅都是MM愛吃的東西,雖然口味有所不同,但不管你帶MM去麥當勞或肯德基,只管向服務員說“來四個雞翅”就行了。麥當勞和肯德基就是生產雞翅的Factory 工廠模式:客戶類和工

原创 AES原理

在有些技術文獻和資料裏常用Rijndael代之AES算法。AES是一個對稱的、塊加密算法,什麼意思? “對稱”的意思是: (1)甲方選擇某一種加密規則,對信息進行加密; (2)乙方使用同一種規則,對信息進行解密。 這種加密模式有一個最大弱

原创 JAVA設計模式

1.1. 什麼是模式 個人感覺模式更多的是項目經驗的提煉,是某種特定場景下的經驗之談。 模式是典型場景的解決方案,所謂某典型場景,爲有相似目標,有相似約束,且場景具有重複性。 所以設計模式往往是發現,而不是發明。你的設計不自覺地落入到

原创 AES 代碼實現

1 分組加密 首先了解下什麼是分組加密:分組密碼是將明文消息編碼表示後的數字(簡稱明文數字)序列,劃分成長度爲n的組(可看成長度爲n的矢量),每組分別在密鑰的控制下變換成等長的輸出數字(簡稱密文數字)序列。 3 ECB的加密方式

原创 CompletionService + Callable實現線程動態返回結果

一般情況下,我們使用Runnable作爲基本的任務表示形式,但是Runnable是一種有很大侷限的抽象,run方法中只能記錄日誌,打印,或者把數據彙總入某個容器(一方面內存消耗大,另一方面需要控制同步,效率很大的限制),總之不能返回執行的

原创 Fragment的生命週期

自從Fragment出現,曾經有段時間,感覺大家談什麼都能跟Fragment談上關係,做什麼都要問下Fragment能實現不~哈哈,是不是有點過~ 本篇博客力求爲大家說明Fragment如何產生,什麼是Fragment,Fragment

原创 Semaphore信號量的使用

semaphore可以用於同步的控制。 semaphore.acquire()用於獲取許可。(這個函數有阻塞效果) semaphore.release()用於釋放許可。 public class ConnectPool {

原创 Http的多線程下載的實現

a、對於網絡上的一個資源,首先發送一個請求,從返回的Content-Length中回去需要下載文件的大小,然後根據文件大小創建一個文件。 b、根據線程數和文件大小,爲每個線程分配下載的字節區間,然後每個線程向服務器發送請求,獲取這段字節

原创 Java 同步鎖

Java語言的關鍵字,當它用來修飾一個方法或者一個代碼塊的時候,能夠保證在同一時刻最多隻有一個線程執行該段代碼。 一、當兩個併發線程訪問同一個對象object中的這個synchronized(this)同步代碼塊時,一個時間內只能有一個線

原创 ImageView中的android:src和android:background的區別

下面是兩個官方的描述: android:background setBackgroundResource(int) A drawable to use as the background. android:src setImag