1. 程式人生 > >.net基礎概念

.net基礎概念

1.       .NET Framework

是支援生成和執行下一代應用程式和 XML Web services 的內部 Windows 元件。.NET Framework 具有兩個主要元件:公共語言執行庫(Common Language Runtime)和 .NET Framework 類庫(Framework Class Library)。

2.       公共語言執行庫)(Common Language Runtime)

是 .NET Framework 的基礎。可以將執行庫看作一個在執行時管理程式碼的代理,它提供記憶體管理、執行緒管理和遠端處理等核心服務,並且還強制實施嚴格的型別安全以及可提高安全性和可靠性的其他形式的程式碼準確性。事實上,程式碼管理的概念是執行庫的基本原則。以執行庫為目標的程式碼稱為託管程式碼,而不以執行庫為目標的程式碼稱為非託管程式碼。以下是CLR提供的服務:

Ø         程式碼管理(載入和執行)

Ø         應用程式記憶體隔離

Ø         型別安全驗證

Ø         IL 到本機程式碼的轉換

Ø         對元資料(增強型型別資訊)的訪問

Ø         託管物件記憶體的管理

Ø         程式碼訪問安全性的強制

Ø         異常處理,包括語言間異常

Ø         託管程式碼、COM 物件和預先存在的 DLL(非託管程式碼和資料)間的相互操作

Ø         物件佈局的自動化

Ø        對開發人員服務的支援(分析、除錯等等)

3.       .NET Framework 類庫(Framework Class Library)

它是一個綜合性的面向物件的可重用型別集合,可以使用它開發多種應用程式,這些應用程式包括傳統的命令列或圖形使用者介面 (GUI) 應用程式,也包括基於 ASP.NET 所提供的最新創新的應用程式(如 Web 窗體和 XML Web services)。它可以完成以前要通過Windows API來完成的絕大多數任務。

4.       託管程式碼 (managed code)

由公共語言執行庫環境(而不是直接由作業系統)執行的程式碼。託管程式碼應用程式可以獲得公共語言執行庫服務,例如自動垃圾回收、執行庫型別檢查和安全支援等。這些服務幫助提供獨立於平臺和語言的、統一的託管程式碼應用程式行為。託管程式碼有以下優點:

Ø        平臺無關性。原始碼先編譯成中間語言,執行時由CLR將中間語言編譯成平臺專用的程式碼,跟Java的位元組程式碼一樣,這樣即可實現平臺無關性。

Ø        提高效能。首先,IL比Java的位元組碼作用還要大,因為IL是即時編譯的,而Java的位元組碼常常是解釋性的,在轉換為平臺可執行程式碼的時候可能會導致效能損失。其次,.NET的即時編譯器(JIT)(Just In Time)並非一次把全部程式碼編譯完才執行,而是隻編譯呼叫的那部分程式碼,並把得到的這部分內部可執行程式碼儲存起來,下次需要呼叫的時候無須重新編譯。Microsoft認為這個過程要比一開始編譯整個應用程式程式碼的效率高得多,因為任何程式的大部分程式碼實際上並不是在每次執行過程中都執行。最後,傳統的編譯器會優化程式碼,但它們的優化過程是獨立於程式碼所執行的特定處理器的。例如Visual Studio 6優化了一臺一般的Pentium機器,它所生成的程式碼就不能利用Pentium Ш處理器的硬體特性。而JIT與平臺無關,所以它可以針對不同的機器完成不同的優化。

Ø        語言的互操作性。互操作性即能將任何一種語言編譯為中間程式碼,編譯好的程式碼可以與從其它語言編譯過來的程式碼進行互動操作。在.NET中可以互動操作的語言有C#、VB.NET、Visual C++.NET、Visual J#、指令碼語言、COM和COM+。

5.       非託管程式碼(Unmanaged Code)

在公共語言執行庫環境的外部,由作業系統直接執行的程式碼。非託管程式碼必須提供自己的垃圾回收、型別檢查、安全支援等服務;它與託管程式碼不同,後者從公共語言執行庫中獲得這些服務。

6.       中間語言(MSIL)

中間語言(MSIL)在.NET Framework中有非常重要的作用,所有面向.NET的語言都要先編譯成IL,那麼它們在邏輯上都需要支援IL的主要特徵。MSIL是將.Net程式碼轉化為機器語言的一箇中間過程。它是一種介於高階語言和基於Intel的組合語言的偽組合語言。當用戶編譯一個.Net程式時,編譯器將原始碼翻譯成一組可以有效地轉換為本機程式碼且獨立於CPU 的指令。當執行這些指令時,實時(JIT)編譯器將它們轉化為CPU特定的程式碼。由於公共語言執行庫支援多種實時編譯器,因此同一段MSIL程式碼可以被不同的編譯器實時編譯並執行在不同的結構上。從理論上來說,MSIL將消除多年以來業界中不同語言之間的紛爭。在.Net的世界中可能出現下面的情況:一部分程式碼可以用Effil實現,另一部分程式碼使用C#或VB完成的,但是最後這些程式碼都將被轉換為中間語言。這給程式設計師提供了極大的靈活性,程式設計師可以選擇自己熟悉的語言,並且再也不用為學習不斷推出的新語言而煩惱了。 

7.       CTS(Common Type System,通用型別系統)

型別是資料的一種表達方式,不同程式語言定義的基本資料型別各不相同。既然要實現語言之間的“溝通”,就需要一個規範來實現“不同”資料型別(也許只是名稱不同,而實質相同)間的對映關係。便於使用.Net Framework在各種語言之間進行互動操作。CTS就完成這個工作。

8.       JIT(Just-In-Time) 

從全稱也可以看出:強調實時,也就是中間程式碼實時執行時,才針對本地計算機的不同,被編譯成本機程式碼。

9.       程式集(Assembly)

是.NET程式的最小組成單位。每個程式集都有自己的名稱、版本等資訊。程式集通常表現為一個檔案(.exe或.dll檔案),這樣的程式集被稱為單檔案程式集,這種程式集是最常見的。程式集也可以由多個檔案組成,每個檔案都是一個模組檔案或者是一個資原始檔,這樣的程式集被稱為多檔案程式集。下面來了解一下如何生成單檔案程式集和多檔案程式集。

10.    PE(可移植可執行Portable Executable)檔案

    PE檔案是一個非常重要的概念,它由PE表頭、CLR表頭、元資料和IL(中間語言)程式碼四部分組成。

    Ø        PE表頭:主要指出了檔案的型別,GUI(圖形使用者)、CUI(控制檯)或是DLL(在.NET中DLL特指程式集檔案的一種形式,不同於以前的動態連結庫檔案)。
    另外該表頭還包括一個時間標記用於表示檔案建立的時間。對於僅包含IL程式碼的模組該表頭的大部分資訊會被忽略。對於包含有本地CPU程式碼的模組,
    該表頭還會包含有關本地CPU程式碼的一些資訊。

    Ø         CLR表頭:包含標識託管模組的一些資訊(可以被CLR或者一些使用工具解析)。這些資訊包括託管模組所需要的CLR版本號,一些標記,託管模組入口點
    方法(MethodDef)元資料標記,以及有關託管模組的元資料、資源、強命名標記和其他一些意義不是太大的資訊的位置和尺寸。

    Ø     【元資料】(表):該表用於描述程式碼中用到的型別和成員,描述的型別和成員有兩類,一是原始碼中定義,一是引用的。元資料總是和包含IL程式碼的檔案

       相關聯,實際上元資料總是和這些程式碼一起被嵌入到同一個exe/dll檔案中,編譯器總是同時產生元資料和IL程式碼,並且總是同時將它們嵌入到生產的託管模

       塊中,兩者始終保持同步。
        元資料的用處:
        @元資料省去了原始碼編譯時對標頭檔案和庫檔案的需求。這是因為在含有實現型別和成員的IL程式碼檔案中,已經包含了所有被引用的型別和成員的資訊,
           編譯器可以直接從託管模組中讀取元資料來獲得這些資訊。
        @Visual Studio.NET的智慧感知(Intellisense)功能是通過分析元資料來實現的。
        @CLR程式碼驗證過程可以利用元資料來確保程式碼僅執行“安全”的操作。
        @利用元資料,可以將一個物件的欄位序列化後傳送到遠端機器,然後在遠端機器上執行反序列化,從而重新建立物件和它的狀態。
        @利用元資料,垃圾收集器可以追蹤物件的生存期。對於任何物件,垃圾收集器都能通過元資料來確定該物件的型別,並且可以獲知該物件的哪些欄位引
          用了其他物件。

    Ø     IL程式碼:編譯器在編譯原始碼是產生的指令,CLR執行時將它們編譯成本地CPU指令。

11.       託管模組(managed module

託管模組是一個需要CLR才能執行的可移植可執行(Portable executeable 簡稱PE) 檔案。

一,什麼是 CTS、CLS、CLR

  (1)CTS(Common Type System)是通用型別系統。主要用於解決不同語言的資料型別不同問題,他是一種型別標準,在這個標準中不但實現了COM的變數相容型別,還定義了通過使用者自定義的方式來進行型別擴充套件,所以.NET平臺為目標語言通過建立本身資料型別與CTS之間的對映來實現與其他語言的資料型別的互動。

 (2)CLS(Common Language Specification)是公共語言規範,主要用於實現多種語言之間的互操作性,是公共型別系統的子集。

   (3)CLR(Common Language Runtime)公共語言執行庫,是所有應用程式都要使用的程式設計基礎,他如同一個支援.net應用程式執行和開發的虛擬機器。

參看下圖有助於瞭解。

二,CTS、CLS、CLR有什麼用

  (1)CTS

  CTS,他定義瞭如何在.NET Framework 執行庫中宣告,使用,和管理型別,同時也是.NET Framework執行庫支援跨語言基礎的一個重要組成部分。

  功能:建立一個支援跨語言整合,型別安全和高效能程式碼執行的框架。提供一個支援完整實現多種程式語言的面向物件的模型。定義各語言必須遵守的規則,有助於確保用不同語言編寫的物件能夠發生互動 作用。

  定義公共語言執行庫在宣告、使用和管理型別時所遵循的規則的模型。通用型別系統建立一個框架,該框架使得跨語言整合、型別安全和高效能程式碼執行成為可能。它是您可以用來生成類庫的原始資料。

通用型別系統支援兩種類別的型別,分別為值型別和引用型別。

  (2)CLS

  CLS即公共語言規範,它是許多應用程式所需的一套基本語言功能。CLS規則定義了通用型別系統的子集,即所有適用於公共型別系統的規則都適用於 CLS,除非CLS中定義了更嚴格的規則。CLS通過定義一組開發人員可以確信在多種語言中都可用的功能來增強和確保語言的互用性。CLS還建立了CLS 遵從性要求,可幫助使用者確定託管程式碼是否符合CLS以及一個給定的工具對託管程式碼(該程式碼是使用CLS功能的)開發的支援程度。

  (3)CLR

  CLR即公共語言執行庫,是.NET Framework的基礎,可以將其看作一個在執行時管理程式碼的代理,它提供了記憶體管理、執行緒管理和遠端處理等核心服務,並且還強制實施嚴格的型別安全以及可提高安全性和可靠性的其他形式的程式碼準確性。

三,.NET3CCTSCLSCLR

.NET結合Java和COM解決方案兩者優點來解決互操作性問題。類似於COM定義的標準二進位制格式,.NET定義了一個稱為通用型別系統Common Type System(CTS)的型別標準。這個型別系統不但實現了COM的變數相容型別,而且還定義了通過使用者自定義型別的方式來進行型別擴充套件。任何以.NET平臺作為目標的語言必須建立它的資料型別與CTS的型別間的對映。所有.NET語言共享這一型別系統,實現它們之間無縫的互操作。該方案還提供了語言之間的繼承性。例如,使用者能夠在VB.NET中派生一個由C#編寫的類。

很顯然,程式語言的區別不僅僅在於型別。例如,一些語言支援多繼承性,一些語言支援無符號資料型別,一些語言支援運算子過載。使用者應認識到這一點,因此.NET通過定義公共語言規範(CLS:Common Language Specification),限制了由這些不同引發的互操作性問題。CLS制定了一種以.NET平臺為目標的語言所必須支援的最小特徵,以及該語言與其他.NET語言之間實現互操作性所需要的完備特徵。認識到這點很重要,這裡討論的特徵問題已不僅僅是語言間的簡單語法區別。例如,CLS並不去關心一種語言用什麼關鍵字實現繼承,只是關心該語言如何支援繼承。

CLS是CTS的一個子集。這就意味著一種語言特徵可能符合CTS標準,但又超出CLS的範疇。例如:C#支援無符號數字型別,該特徵能通過CTS的測試,但CLS卻僅僅識別符號數字型別。因此,如果使用者在一個元件中使用C#的無符號型別,就可能不能與不使用無符號型別的語言(如VB.NET)設計的.NET元件實現互操作。這裡用的是“可能不”,而不是“不可能”,因為這一問題實際依賴於對non-CLS-compliant項的可見性。事實上,CLS規則只適用於或部分適用於那些與其他元件存在聯絡的元件中的型別。實際上,使用者能夠安全實現含私有元件的專案,而該元件使用了使用者所選擇使用的.NET語言的全部功能,且無需遵守CLS的規範。另一方面,如果使用者需要.NET語言的互操作性,那麼使用者的元件中的公共項必須完全符合CLS規範。

最後一個C是公共語言執行庫Common Language Runtime(CLR)。簡單地說,CLR是CTS的實現,也就是說,CLR是應用程式的執行引擎和功能齊全的類庫,該類庫嚴格按照CTS規範實現。作為程式執行引擎,CLR負責安全地載入和執行使用者程式程式碼,包括對不用物件的垃圾回收和安全檢查。在CLR監控之下執行的程式碼,稱為託管程式碼(managed code)。作為類庫,CLR提供上百個可用的有用型別,而這些型別可通過繼承進行擴充套件。對於檔案I/O、建立對話方塊、啟動執行緒等型別—— 基本上能使用Windows API來完成的操作,都可由其完成。

讓我們正確看待“3C”。開發人員在構建自己的分散式應用程式時,因為使用者在程式設計時將直接面對CLR,應將主要精力放在學習瞭解CLR上,而不是CTS和CLS。而對於希望以.NET平臺為目標的語言和工具開發商來說,就需要深入理解CTS和CLS。互操作性元件是分散式應用的關鍵,因此理解.NET如何通過定義公共型別實現這一目標,也就顯得十分重要。

介紹完CTS,CLS,CTS.我們來看看開發和執行.NET需要的最基本環境。

四,開發和執行.NET需要的最基本環境

我們來分析下:

(1).NET程式的開發

這個問題很簡單,大部分.NET程式設計師都在使用微軟公司提供的產品Visual Studio平臺上開發.NET程式。但需要注意的是,Visual Studio IDE環境並不是惟一的、必須的工具,理論上可以使用任何一個文字編輯器編寫.NET的程式碼,但是由於文字編輯器並不提供程式碼的編譯除錯以及語法提示等功能,所以基本上沒有程式設計師僅僅使用文字編輯器來編寫.NET程式碼。 

(2).NET的執行

執行.NET程式的基礎毋庸置疑是.NET Framework,可以在Microsfot的官方網站上免費下載.NET Framework。執行.NET程式必須具備的元件也是.NET Framework,這對於任何想執行.NET程式的作業系統來說都一樣。 

注意:目前.NET對於跨平臺的支援做的並不好,僅僅支援Windows平臺,在Linux、Unix系統上並不能直接安裝.NET Framework,只能安裝第三方的Mono作為.NET Framework的替代,但Mono同.NET Framework的相容性以及更新的速度等一系列問題,導致目前使用Mono開發的專案相對較少。 

總結:

開發和執行.NET程式必需安裝.NET Framework元件,當然也必須安裝Visual Studio IDE(雖然理論上文字編輯器也可以編寫.NET程式碼,但實際上程式設計師都會安裝微軟公司的Visual Studio產品)。

我們對其環境也知道了,現在我們來看看.NET的執行機制是什麼

五,.NET的執行機制

  (1).NET程式被編譯成什麼形式的程式碼

  .net程式在第一次編譯後,形成CLR頭,元資料和中間程式碼。

  在實時執行或者部署時,進行第二次變異,編譯的結果是在CLR中可以執行的機器程式碼;

  -CLR頭包含了.net在執行該程式時得到的資訊,包括程式集版本號,檔名和模組版本號。

  -MetaData包含了所有型別的定義,所有的引用以及程式集清單。

  (2) JIT是如何工作的

  JIT引擎在編譯中間程式碼之前,會尋找本機機器程式碼快取並且確認是否可用:

  - 如果可以用,則直接載入;

  -  如果不可用,JIT引擎會查詢型別中的方法存根,找到中間程式碼並且進行編譯。

  (3)簡述程式集的載入機制

  CLR通過System.Reflection.Assembly.LoadFromSystem.Reflection.Assembly.Load來主動載入程式集:

  - 前者通過位置載入程式集;

  - 後者通過 唯一標識 強命名程式集 的四個元素來標識程式集;

  它們的載入方式一致,其內在策略是依次通過版本策略,CODEBASE位置,應用程式域位置和程式位置來查詢程式集。

  (4)如何配置程式集的版本策略

  CLR支援3個級別上設定版本策略,依次是:應用程式策略,發行者策略和計算機策略。

  所有的策略的設定都是通過修改配置檔案來實現的。3個級別策略依次會被CLR執行,而上一個策略的執行結果將被作為下一個策略的輸入。

  發行者策略僅僅對那些被放入GAC(快取)的程式集,並且可以再應用程式策略中被忽略。

既然上面提到程式集了,下面我們來看看什麼是程式集。

六,什麼是程式集和應用程式域

程式集和應用程式域是.NET框架中比較基本的概念,每個.NET程式設計師都在日常工作中不斷地與其打交道。程式集和應用程式域是.NET程式打包和部署的基礎,讀者需要清楚地理解其基本概念。

所涉及的知識點

  • 程式集的基本概念
  • 應用程式域的基本概念

分析問題

首先來解釋程式集的概念。程式集(Assembly)是一個或多個模組和資原始檔的集合。當一個程式集被打包形成時,它不僅會包含所有的原始檔案內容,也會新增一個程式集清單,該清單包含了程式集的版本號、語言、釋出者、匯入型別等資訊。有趣的是,程式集清單可以被新增到程式集中的某個檔案之上,編譯器也可以為程式集清單單獨建立一個檔案。

  程式集是一個邏輯上的概念,而不是指一個或幾個物理檔案或者程式碼段。

程式集概念的引入,給系統的設計和部署帶來了很大的靈活性。

1)程式集支援多程式語言開發,就是一個程式集可以包含由不同程式語言定義和實現的模組。在程式集被編譯形成時,所有這些型別已經被編譯成中間程式碼,而不再帶有原來程式語言的特性。

2)程式集允許邏輯分佈和物理分佈分離。這樣雖然同屬於一個邏輯程式集,各種型別和資源仍然可以分佈在不同的物理檔案裡。這大大地提高了系統部署的靈活性。例如程式設計師可以把某個程式集分成四個檔案,分別包含基本型別定義、基本HELP文件、可選型別定義和可選HELP文件。這樣在部署該系統時,可以讓使用者選擇需要的功能,並且按照使用者的選擇從伺服器下載必要的檔案來組成程式集。

  包含了程式集清單的那個檔案對使用該程式集來說是必需的。

接下來看一下應用程式域的概念,同樣,這是一個.NET提出的新概念。在作業系統中,一個普通的應用程式通常佔據一個作業系統的程序。作業系統的程序為應用程式提供了獨立的記憶體空間,規定了程式碼的執行範圍,並且提供了錯誤隔離機制。在.NET框架中,應用程式域(AppDomain)提供了和作業系統程序非常類似的功能。一個在CLR中執行的應用程式,將至少擁有一個應用程式域。和作業系統的程序相同,應用程式提供了程式碼的執行範圍,並且為程式提供隔離。在多個應用程式域間通訊是非常困難的,每個型別例項都會存放在一個應用程式域內,並且,所有域內的引用必須引用自己所在應用程式域的物件。

和作業系統的程序不同的是,應用程式域的建立和銷燬所需要的開銷會相對較小。當然,CLR仍然在作業系統上執行,所以某個應用程式域必定執行在某個作業系統的程序內,在CLR的安排下,每個作業系統的程序也可以包含多個應用程式域。圖2.2表示了這種組織結構。

 答案

程式集Assembly)是一個由型別定義、資料檔案和資原始檔組成的邏輯集合。每個程式集都包含一個程式集清單,該清單通常被附加在某個檔案頭上,也可以設定單獨建立一個檔案來包含該清單。

應用程式域是CLR中提供程式碼執行範圍、錯誤隔離和安全設定隔離的邏輯單元,功能類似於作業系統的程序。一個或多個應用程式域在一個作業系統的程序中執行。應用程式域的建立和銷燬所需的開銷,相對於作業系統程序較小。但和作業系統程序一樣,應用程式域之間的資料共享相當困難。

現在我們在來看下,程式集的版本分為哪些組成?

七,程式集的版本分為哪些組成?

每一程式集都有一個版本號作為其標識的一部分。 因此,如果兩個程式集具有不同的版本號,執行時就會將它們視作完全不同的程式集。 此版本號實際表示為具有以下格式的四部分號碼:

<主版本>.<次版本>.<生成號>.<修訂號>

例如,版本 1.5.1254.0 中的 1 表示主版本,5 表示次版本,1254 表示生成號,而 0 則表示修訂號。

版本號與其他標識資訊(包括程式集名稱和公鑰,以及與該應用程式所連線的其他程式集的關係和標識有關的資訊)一起儲存在程式集清單中。

在生成程式集時,開發工具將把每一個被引用程式集的依賴項資訊記錄在程式集清單中。 執行時將這些版本號與管理員、應用程式或發行者設定的配置資訊結合使用,以載入被引用程式集的正確版本。

為進行版本控制,執行時會區分常規程式集和具有強名稱的程式集。 只對具有強名稱的程式集執行版本檢查。

有關指定版本繫結策略的資訊,請參見 配置檔案。 有關執行時如何使用版本資訊查詢特定程式集的資訊,請參見 執行時如何定位程式集

八,什麼是託管程式碼?什麼是非託管程式碼?

  託管程式碼 (managed code) 
由公共語言執行庫環境(而不是直接由作業系統)執行的程式碼。託管程式碼應用程式可以獲得公共語言執行庫服務,例如自動垃圾回收、執行庫型別檢查和安全支援等。這些服務幫助提供獨立於平臺和語言的、統一的託管程式碼應用程式行為。
託管程式碼是可以使用20多種支援Microsoft .NET Framework的高階語言編寫的程式碼,它們包括:C#, J#, Microsoft Visual Basic .NET, Microsoft JScript .NET, 以及C++。所有的語言共享統一的類庫集合,並能被編碼成為中間語言(IL)。執行庫編譯器(runtime-aware ompiler)在託管執行環境下編譯中間語言(IL)使之成為本地可執行的程式碼,並使用陣列邊界和索引檢查,異常處理,垃圾回收等手段確保型別的安全。

  在託管執行環境中使用託管程式碼及其編譯,可以避免許多典型的導致安全黑洞和不穩定程式的程式設計錯誤。同樣,許多不可靠的設計也自動的被增強了安全性,例如 型別安全檢查,記憶體管理和釋放無效物件。程式設計師可以花更多的精力關注程式的應用邏輯設計並可以減少程式碼的編寫量。這就意味著更短的開發時間和更健壯的程式。

非託管程式碼 (unmanaged code)

  在公共語言執行庫環境的外部,由作業系統直接執行的程式碼。非託管程式碼必須提供自己的垃圾回收、型別檢查、安全支援等服務;它與託管程式碼不同,後者從公共語言執行庫中獲得這些服務。

問題:什麼是託管?託管是什麼意思?

託管程式碼就是基於.net元資料格式的程式碼,運行於.net平臺之上,所有的與作業系統的交換有.net來完成,就像是把這些功能委託給.net,所以稱之為託管程式碼。非託管程式碼則反之。

舉個例子l

Vc.net還可以使用mfc,atl來編寫程式,他們基於MFC或者ATL,而不是.NET,所有是非託管程式碼,如果基於.net比如C#,VB.net則是託管程式碼

非託管程式碼是指.NET解釋不了的

簡單的說,託管程式碼的話,.net可以自動釋放資料,非託管程式碼需要手動釋放資料.


相關推薦

.net基礎概念

1.       .NET Framework 是支援生成和執行下一代應用程式和 XML Web services 的內部 Windows 元件。.NET Framework 具有兩個主要元件:公共語言執行庫(Common Language Runtime)和 .NET F

.net基礎概念知識

strong 部分 inter 安裝 post 平臺開發 .net 廚房 我們 .Net的基礎概念 .Net是指.net Framework框架,一種平臺,一種技術; .Net分為.net Framework框架和.net平臺;通俗點:.net平臺相當於廚房,.net Fr

asp.net基礎概念的理解

一.開發廠商眾所周知,Java是SUN公司推出的程式設計語言,特別適合於Internet應用程式開發,其前身是Oak語言,而JavaScript則是NetScape公司的產品,是為了擴充套件NetScape Navigator功能而開發的一種可嵌入Web頁面中的解釋性語言,其前身是Live Script。由

RabbitMQ基礎概念詳細介紹

可用性 將不 tar connect 相互 abi 封裝 編寫 綁定 原文地址:http://www.diggerplus.org/archives/3110 引言 你是否遇到過兩個(多個)系統間需要通過定時任務來同步某些數據?你是否在為異構系統的不同進程間相互調用、通

JS基礎概念

文件 數字 true while語句 第一個 加載 截取 pre js基礎 JS基礎概念 1. 算法及流程圖 算法類型:1.算數算法;2.事務性算法(解決某個問題的方法和先後順序)。 JS語法概述 1. 引入JS的方法 1.用<script src=""><

kafka-通俗易懂基礎概念

kafka python topic 一些大的網站如果想統計用戶的訪問情況,如果每個用戶的訪問,都在後端經過一系列的用戶行為分析,然後再給客戶返回結果這顯然不現實,直接寫入數據庫,數據庫也扛不住,這時候就需要一個消息系統,在用戶一個請求過來後,服務器只需要把這次操作扔到後端,不用管後

【extjs6學習筆記】0.1 準備:基礎概念(02)

json over cal 類的屬性 tab 常用事件 data 微軟 基於 Ext 類 Ext 是一個全局單例的對象,在 Sencha library 中它封裝了所有的類和許多實用的方法。許多常用的函數都定義在 Ext 對象裏。它還提供了像其他類中一些頻繁使用的方法

nodejs零基礎詳細教程1:安裝+基礎概念

img res 安裝過程 pkg 實時 linkedin 圖標 過程 好的 第一章 建議學習時間2小時 課程共10章 學習方式:詳細閱讀,並手動實現相關代碼 學習目標:此教程將教會大家 安裝Node、搭建服務器、express、mysql、mongodb、編寫後臺業務邏輯

java 基礎概念 -- 數組與內存控制

nbsp 堆內存 數組元素 art pan popu ace article pac 問題1: Java在聲明數組的過程中,是怎樣分配內存的? 在棧內存中 建一個數組變量,再在堆內存中 建一個 數組對象。至於詳細的內存分配細節,還得看 該初始化是 數組動態初始化 還是

Linux同步與相互排斥應用(零):基礎概念

使用 line 關系 並發執行 來看 文章 必須 生產者 而且 【版權聲明:尊重原創,轉載請保留出處:blog.csdn.net/shallnet 或 .../gentleliu,文章僅供學習交流,請勿用於商業用途】 當操作系統進入多道批處理

python3 基礎概念

small obj 如果 公司 不可變類 col targe 形象 height 一、3.x新特性 1、print (),打印,3.x必須加括號 2、raw_input,3.x改為input 二、簡介 Python是著名的“龜叔”Guido van Ros

2017.06.29數據挖掘基礎概念第六,八,九章

之前 屬性。 prior 選擇 處理 挖掘 允許 什麽是 單元 第六章51、關聯規則的挖掘的兩個過程1、找出所有的頻繁項集2、由頻繁項集產生強關聯規則52、頻繁項集挖掘方法 1、Apriori算法 2、挖掘頻繁項集的模式增長方法 3、使用垂直數據格式挖掘頻繁項

2017.06.29數據挖掘基礎概念第四章

構建 企業 操作 允許 包含 元數據 體系結構 當前 然而 第四章39、為什麽在進行聯機分析處理(OLAP)時,我們需要一個獨立的數據倉庫,而不是直接在日常操作的數據庫上進行 1、提高兩個系統的性能 2、操作數據庫支持多事務的並發處理,需要並發控制和恢復機制,確保一

【ADO.NET基礎知識】SqlConnection、command、DataSet 、DataTable、dataAdapter

mysq change ado.net 使用 屬於 再次 結構 mman 索引 1.使用Connection連接數據庫的步驟:   (1).添加命名空間 System.Data.SqlClient(註意:初學者經常會忘記)   (2)定義連接字符串。連接SQL Server

.Net基礎篇_學習筆記_第四天_關系運算符和邏輯運算符

不能 main 運算 ram true con 是否 names 關系 1.關系運算符 包含:> < <= >= == != 以及bool類型中的true和false。 2.邏輯運算符 與 &

【】ADO.NET基礎-Session】Session的基本應用

ear 重定向 session 存儲 null tran 過去 方式 string 在服務端存儲狀態的對象:Session和Application 在客戶端存儲狀態的對象:Cookie 1.Session:每個獨立的瀏覽器都會創建一個獨立的Session,不是一臺電腦一個S

基礎概念

們的 例如 區別 行為 事物 創建 自己 避免 要求 1、面向對象3大特點 封裝:封裝,也就是把客觀事物封裝成抽象的類,並且類可以把自己的數據和方法只讓可信的類或者對象操作,對不可信的進行信息隱藏。 繼承:繼承是指這樣一種能力:它可以使用現有類的

K8S基礎概念

使用 外部 清理 lac six 基本上 新的 容器 所有 一、核心概念 1、Node Node作為集群中的工作節點,運行真正的應用程序,在Node上Kubernetes管理的最小運行單元是Pod。Node上運行著Kubernetes的Kubelet、kube-proxy

【ADO.NET基礎】加密方法經典集合

char 自定義 rst reac stream algorithm array temp esc 各種加密方法集錦: using System; using System.Security.Cryptography; using System.Text; using S

軟件測試基礎概念總結

開發 提高 運行程序 手機軟件 標準化 理論 report 計算 管理 一、軟件測試概述 (一)什麽是測試,與測試相關常見活動有哪些? 測試:與科學方法中的實驗類似,是對事物狀態、功能的測量和觀察。通過將測量結果與已知狀態或理論假設相比較,測試者得以對事物狀態、功能做出