第十四章 字元 字串 編碼

2022-01-15 02:30:57 字數 1409 閱讀 8103

一、字元:.net framework中字元總是表示成16位的 unicode值。

二、字元和數字轉化有三種方式 直接轉化、convert、iconvertible

三、字串: string  存在於堆上屬於引用型別。

字串拼接建議使用 stringbuilder,因為每次+號拼接會產生額外的記憶體開銷,產生新的字串。

四、字串比較:

stringcomparison.ordinal 效率較高,先看字元數數量相等的話才開始比較,否則直接返回false ,這是忽略語言環境的前提下。

system.stringcomparer:適合大量字串,反覆執行同一比較。具體機制沒有研究。

五、字串留用:簡單的說就是為了節省記憶體消耗,共享字串。原理是 乙個hash表,表中是乙個個字串,單是實際記憶體是在堆上。hash特性 key的唯一性。達到了共享。

六、字串池:編譯原始碼時候將單個字串多個例項合併成乙個。在編譯字串原始碼插入到元資料時候。元資料中該字串的引用被修改為,引用同乙個字串例項(就剛被合併過後的那個例項)。這種技術叫做字串池。而不是和執行緒池中線城池一樣的概念。

七、字串編碼: 位元組在傳輸過程中需要編碼,響應的接收方需要解碼。為了安全、資訊不丟失、等等就要編碼解碼。

抽象類encoding有個靜態屬性getencoding 靜態屬性是全域性的公用的因此不會構建額外的物件,可以減少gc壓力,首選該屬性。

encoding.getencoding("abc");

system.text.unicodeencoding.getencoding("abv");//繼承自 抽象類 encoding

system.text.utf8encoding.getencoding("abv");//繼承自 抽象類 encoding

因此後面的兩個是抽象類encoding的派生類,會產生額外的物件

八、位元組流編碼:system.net.sockets.networkstream 的編碼方式2種方案第一種上面的encoding來編碼,單是encoding方式獲取位元組流時候需要是 2的倍數。因此還要利用獲取數量的方式然後處理最末尾的位元組流是否是2的倍數。因此有乙個簡單的方式就是base64:他用system.convert的靜態方法來實施解碼編碼。

九、安全字串:system.security.securestring 用法如下

他是在非託管記憶體中的加密字串。僅僅在你呼叫她的 幾個屬性時候才處於未加密狀態,

Perl語言入門筆記 第十四章 字串與排序

pod 第十四章 字串與排序 用index查詢子字串 my where index big,small eg my stuff howdy world my where index stuff,wor where 6 index函式還能指定位置開始搜尋 my where2 index stuff,w...

第十四章約束

約束 constraint 是一種保證資料完整性的規則。約束設定在單個字段或者多個字段組合上,寫入這些欄位的行資料必須要符合約束的規則 約束的五種型別 not null 非空約束,指定某列的所有行資料不能包含空值 unique 唯一性約束,指定列或者列的組合的所有行資料必須唯一 primary ke...

第十四章 約束

第十四章 約束 練習1 1.學校有乙個選課系統,其中包括如下關係模式 系 系編號 主鍵,系名稱 唯一鍵,系主任 非空約束,系所在校去 取值範圍只能在南湖校區和渾南校區 create table xi xi no varchar2 10 primary key,xi name varchar2 10 ...