原创 《計算機網絡 自頂向下方法》整理(三)運輸層

運輸層位於應用層和網絡層之間,是分層的網絡體系結構的重要部分,該層爲運行在不同主機上的應用進程提供直接的通信服務起着至關重要的作用。 一、概述和運輸層服務 運輸層協議爲運行在不同主機上的應用進程之間提供了邏輯通信功能。在發送端,運輸層將從發

原创 《計算機網絡 自頂向下方法》整理(二)應用層

一、應用層協議原理 1、網絡應用程序體系結構 應用程序體系結構由應用程序研發者設計,規定了如何在各種端系統上組織該應用程序。現代網絡用用程序中有兩種主流體系結構:客戶-服務器體系結構或對等體系機構(P2P): 在客戶-服務器體系結構中,客

原创 《計算機網絡 自頂向下方法》整理(一)計算機網絡和因特網

一、什麼是因特網 什麼是因特網,這個問題可以從兩個方面來回答。其一、根據因特網的具體構成,即構成因特網的基本硬件和軟件組件;其二、根據爲分佈式應用提供服務的聯網基礎設施來描述因特網 1、具體構成描述 越來越多的非傳統因特網物品,如智能手機、

原创 《深入理解C#》整理10-使用async/await進行異步編程

在.NET Framework中,有三種不同的模型來簡化異步編程。①.NET 1.x中的BeginFoo/EndFoo方法, 使用IAsyncResult和AsyncCallback來傳播結果。②.NET 2.0中基於事件的異步模式,使用

原创 《深入理解C#》整理9-靜態語言中的動態綁定

一、何謂、何時、爲何、如何 1、何謂動態類型 C#是一門靜態類型語言。編譯器知道代碼中表達式的類型,知道任何類型中可用的成員。它應用了相當複雜的規則來決定哪個成員應該在何時使用。這包括了重載決策;在(動態類型出現)之前的唯一途徑是根據對象在

原创 《深入理解C#》整理7-查詢表達式和LINQ to Objects

一、LINQ介紹 1、LINQ中的基礎概念 1.1、序列 序列通過IEnumerable和IEnumerable接口進行封裝,它就像數據項的傳送帶——你每次只能獲取它們一個,直到你不再想獲取數據,或者序列中沒有數據了。序列和其他集合數據結構

原创 《深入理解C#》整理8-超越集合的LINQ

一、用IQueryable和IQueryProvider進行轉換 在LINQ to SQL中的所有查詢表達式中,數據源都是Table。不過,如果你看一下Table,你就會發現它沒有Where、Select和Join方法,或任何其他的標準查詢

原创 《深入理解C#》整理6-擴展方法

C# 3引入了擴展方法的概念,它既有靜態方法的優點,又使調用它們的代碼的可讀性得到了提高。使用擴展方法,可以像調用實例方法那樣調用靜態方法。 一、擴展方法的語法 1、聲明擴展方法 並不是任何方法都能作爲擴展方法使用——它必須具有以下特徵:

原创 《深入理解C#》整理5-Lambda表達式和表達式樹

一、 作爲委託的Lambda表達式 Lambda表達式都可以看做是C# 2的匿名方法的一種演變。匿名方法能做的幾乎一切事情都可以用Lambda表達式來完成。與匿名方法相似,Lambda表達式有特殊的轉換規則:表達式的類型本身並非委託類型,

原创 《深入理解C#》整理4-迭代器

迭代器模式是行爲模式的一種範例,行爲模式是一種簡化對象之間通信的設計模式。這是一種非常易於理解和使用的模式。實際上,它允許你訪問一個數據項序列中的所有元素,而無須關心序列是什麼類型——數組、列表、鏈表或任何其他類型。它能非常有效地構建出一個

原创 《深入理解C#》整理3-委託

一、向笨拙的委託語法說拜拜 在C# 1中,我們一般是先寫好一連串事件處理程序,然後到處寫new EventHandler,這顯得很多餘、很凌亂,因爲事件本身已經指定了它要使用哪個委託類型。有時,我們寫的方法是如此簡單,以至於它們的實現比簽名

原创 《深入理解C#》整理2-可空類型

一、沒有值怎麼辦 以DateTime爲例,購物系統中存在發貨日期,但在下單未發貨的情況下,發貨日期應當可爲空,但編譯器是不允許DateTime變量設置爲空的。在C#2之後我們可以使用可空類型,但在C#1中又是如何處理的? 1、爲什麼值類型不

原创 《深入理解C#》整理1-泛型

泛型是C#2最重要的新特性,同時也是.NET2.0的CLR中最重要的新特性,它實現了類型和方法的參數化(可作爲參數傳遞)。它們增強了性能,是代碼更富表現力,並且將大量安全檢查從執行時轉移到了編譯時進行。 1、爲什麼需要泛型 1、使用如Arr

原创 《Redis設計與實現》筆記4—獨立功能的實現

一、發佈與訂閱 Redis的發佈與訂閱功能由PUBLISH、SUBSCRIBE、PSUBSCRIBE等命令組成。通過執行SUBSCRIBE命令,客戶端可以訂閱一個或多個頻道,從而成爲這些頻道的訂閱者(subscriber):每當有其他客戶端

原创 《Redis設計與實現》筆記3—多機數據庫的實現

一、複製 在Redis中,用戶可以通過執行SLAVEOF命令或設置slaveof選項,讓一個服務器去複製另外一個服務器,被複制的服務器稱爲主服務器,進行復制的服務器被稱爲從服務器 1、舊版複製功能的實現 Redis的複製功能分爲同步和命令傳