char可以儲存漢字嗎? Java基礎

2021-07-10 17:49:59 字數 837 閱讀 6329

可以!

public static void main(string args) 

}

string儲存漢字很好理解的,char是如何儲存漢字的呢?

char是按照字元儲存的,不管英文還是中文,固定占用占用2個位元組,用來儲存unicode字元。範圍在0-65535。

unicode編碼字符集中包含了漢字,所以,char型變數中當然可以儲存漢字啦。不過,如果某個特殊的漢字沒有

被包含在unicode編碼字符集中,那麼,這個char型變數中就不能儲存這個特殊漢字。

如果用3個位元組有很多不常用的字又佔了很多不必要的儲存空間,所以我們用2個位元組而不是1個或者3個表示漢字的國際碼。

補充說明:

1. unicode編碼固定占用兩個位元組,所以,char型別的變數也是占用兩個位元組。unicode(統一碼、萬國碼、

單一碼)是一種在計算機上使用的字元編碼。它為每種語言中的每個字元設定了統一並且唯一的二進位制編碼,

以滿足跨語言、跨平台進行文字轉換、處理的要求。傳統

的編碼方式存在的缺陷:

①在不同的編碼方案下有可能對應不同的字母

②採用大字符集的語言其編碼長度可能不同

目前的用於實用的 unicode 版本對應於 ucs-2,使用16位的編碼空間。也就是每個字元占用2個位元組。

2. 不同的

看編碼佔據位元組數也不同:utf-32中文是4位元組;

utf-8碼的中文都是3位元組的,字母是1位元組,因為utf-8是變長編碼;

而 gbk/gbk18030 中文是2字

節的,英文是1個位元組。

char可以是負數嗎

c語言標準中沒有規定char是signed char還是unsigned char,所以這就取決於編譯器的實現了。大部分編譯器預設情況下將char解釋為signed char,例如gcc和vc的編譯器,這很大程度上是因為int預設是signed。在程式中進行判斷的方法 include int mai...

Java細節 List可以add null 嗎?

在寫 的時候,有時候遇到for迴圈,寫到下面的時候有一點猶豫。list datalist for data d datalist 產生上述疑問,究其原因在於對list原始碼不熟悉,雖然知道list介面有linkedlist 基於鍊錶實現 arraylist 基於陣列實現 等實現類,但其執行add方法...

mysql 儲存結構 可以嗎 Mysql儲存結構

索引是一種加快查詢速度的資料結構,常用索引結構有hash b tree和b tree。本節通過分析三者的資料結構來說明為啥mysql選擇用b tree資料結構。資料結構 hash是基於雜湊表完成索引儲存,雜湊表特性是資料存放是雜湊的。優點 等值查詢快,通過hash值直接定位到具體的資料。缺點 範圍查...