首頁 >Java >Java入門 >java字元和位元組的差別是什麼

java字元和位元組的差別是什麼

爱喝马黛茶的安东尼
爱喝马黛茶的安东尼原創
2019-11-12 15:24:473467瀏覽

java字元和位元組的差別是什麼

byte即位元組的意思,是java中的基本資料類型,用來申明位元組型的變量,一個位元組包含8個位,所以,byte類型的取值範圍是-128到127。

通常在讀取非文字檔案時(如圖片,聲音,可執行檔)需要用位元組陣列來保存檔案的內容,在下載檔案時,也是用byte陣列作臨時的緩衝器接收文件內容。所以說byte在文件操作時是必不可少的。不管是對檔案寫入還是讀取都要用到。

在某些程式中(尤其是和硬體有關的程式)會將某些資料儲存到位元組類型的變數中,例如00110010,其中每個位元都代表一個參數,然後以位元運算的方式對參數進行取值和賦值運算。

機器只知道位元組,而字元卻是語意上的單位,它是有編碼的,一個字元可能編碼成1個2個甚至3個4個位元組。這跟字符集編碼有關係,英文字母和數字是單字節,但漢字這些自然語言中的字符是多字節的。一個位元組只能表示255個字符,不可能用於全球那麼多自然語言的處理,因此肯定需要多位元組的儲存方式。

那麼在檔案的輸入輸出中,InputStream、OutputStream它們是處理位元組流的,就是說假設所有東西都是二進位的位元組;而Reader, Writer 則是字元流,它涉及到字元集的問題;依照ANSI編碼標準,標點符號、數字、大小寫字母都佔一個位元組,漢字佔2個位元組。依照UNICODE標準所有字元都佔2個位元組。

位元組:

1、bit=1,二進位資料0或1。

2、byte=8bit,1個位元組等於8位元 儲存空間的基本計量單位。

3、一個英文字母=1byte=8bit 1個英文字母是1個位元組,也就是8位元。

4、一個漢字=2byte=16bit 1個漢字是兩個字節,也就是16位元。

字符:

Java採用unicode來表示字符,java中的一個char是2個位元組,一個中文或英文字符的unicode編碼都佔2個位元組,但如果採用其他編碼方式,一個字元佔用的位元組數則各不相同。

在 GB 2312 編碼或 GBK 編碼中,一個英文字母字元儲存需要1個位元組,一個漢子字元儲存需要2個位元組。

在UTF-8編碼中,一個英文字母字元儲存需要1個位元組,一個漢字字元儲存需要3到4個位元組。

在UTF-16編碼中,一個英文字母字元儲存需要2個位元組,一個漢字字元儲存需要3到4個位元組(Unicode擴充區的一些漢字儲存需要4個字節)。

在UTF-32編碼中,世界上任何字元的儲存都需要4個位元組。

php中文網,大量的免費Java入門教學,歡迎線上學習!

以上是java字元和位元組的差別是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn