原创 dns原理介紹及實踐問題總結

1 問題引入: a) 域名劫持: dns過程中某個環節被攻擊/篡改,導致dns結果爲劫持者的服務器。例如競爭對手將你方的app下載地址篡改爲他方的app下載地址。 b) 對現網用戶進行監控時,發現個別用戶請求時間爲幾十秒,而客戶端設置的co

原创 java Type及項目實踐

java Type及項目實踐 一. 泛型基礎 泛型接口 public interface ITest<T> { } 泛型方法 public <T> T testMethod(T param) { return param; } 匿

原创 設計模式——工廠(簡單工廠、工廠方法、抽象工廠)

開發過程中經常聽到工廠這個詞,其實根據個人經驗,簡單工廠用的是比較多的。工廠方法和抽象工廠是GoF23種設計模式中的一種,而我們常使用的簡單工廠並不是一種設計模式,可以說是我們自己的一種俗稱。 定義 簡單工廠: 直接通過一個Factory類

原创 設計模式——代理模式(Proxy)

定義 爲其他對象提供一種代理,以控制對這個對象的訪問。代理對象在客戶端和目標對象之間起到中介的作用。(結構型) 如果不知道代理模式,可能大家對代理服務器都不叫熟悉。代替服務器代替請求者去發一起對另一個服務器的請求,他相當於請求的中間人。爲

原创 設計模式——原型模式(ProtoType)

定義 用於創建重複的對象,同時又能保證性能。它屬於創建型設計模式,它提供了一種創建對象的最佳方法。 模板 Prototype (原型)   Product 角色負責定義用於複製現有實例來生成新實例的方法。在示例程序中,由 Product

原创 設計模式——裝飾模式

裝飾模式 定義 裝飾者模式又稱爲包裝(wrapper)模式。裝飾者模式對客戶端透明的方式擴展對象的功能,是繼承關係的一個替代方案。 模板 抽象構件(Component)角色:給出一個抽象接口,以規範準備接受附加責任的對象。  具體構件(Co

原创 設計模式——模板方法

定義 就是定義算法骨架的方法 具體的操作:在模板中直接實現某些步驟的方法,通常這些步驟的實現算法是固定的,而且是不怎麼變化的,因此就可以當作公共功能實現在模板裏面。 其實寫設計模式的系列筆記就是一種模板方法,每篇文章的流程(目錄)都是一樣的

原创 設計模式——狀態模式

定義 對有狀態的對象,把複雜的“判斷邏輯”提取到不同的狀態對象中,允許狀態對象在其內部狀態發生改變時改變其行爲。 模板 狀態模式包含以下主要角色。 環境(Context)角色:也稱爲上下文,它定義了客戶感興趣的接口,維護一個當前狀態,並將與

原创 設計模式——享元模式

定義 享元(Flyweight)模式的定義:運用共享技術來有効地支持大量細粒度對象的複用。它通過共享已經存在的又橡來大幅度減少需要創建的對象數量、避免大量相似類的開銷,從而提高系統資源的利用率。 模板 FlyweightFactory享元

原创 虛擬內存技術原理解析

虛擬內存技術原理解析 1. 它將主存看成是一個存儲在磁盤空間上的地址空間的高速緩存,主存中只保存活動區域,並根據需要在磁盤和主存之間來回傳送數據。 2. 它爲進程提供了一致的地址空間,簡化了內存管理。 3. 它保護了每個進程的地址空間不被其

原创 讀史——回望勾吳

立國 據史書記載周太王生有三子,長子太伯(泰伯)、次子仲雍和小兒子季歷。季歷的兒子姬昌聰明早慧,深受太王寵愛。周太王想傳位於姬昌,但根據當時傳統應傳位於長子,太王因此鬱鬱寡歡。泰伯明白父親的意思後,就和二弟仲雍借爲父採藥的機會一起逃到荒涼

原创 架構——android架構演進概述

隨着業務的發展和技術的變更,Android開發也經歷了以下幾個發展階段: 看似高大上的名詞,其實遵循着最簡單的原則:分而治之(如何劃分就是“架構”,簡單的事情如何串在一起就是“接口協議”,CS領域太多這樣的例子了。) 我的理解是,模塊化/

原创 深入理解數據庫索引

深入理解數據庫索引 什麼是索引 1. 索引是指針,指向表裏的數據。 2. 索引通常與相應的表示分開存儲的,其主要目的是提高數據檢索的性能。 3. 索引的創建於刪除不會影響到數據本身,但會影響到數據檢索的速度。 4. 索引也會佔用表空間,而且

原创 android日誌蒐集原理及方案比較

說明: 本文只討論Log日誌,而不是應用的埋點日誌。 Android 日誌架構 用一張圖來了解Android Log的架構: 這裏涉及到三個進程: APP進程: 調用Log的接口打日誌,最終通過soctket通信發送給Logd進程 Log

原创 java四種引用及在LeakCanery中應用

java 四種引用 Java4種引用的級別由高到低依次爲: StrongReference > SoftReference > WeakReference > PhantomReference 1. StrongReferenc