java中char所佔用的位元組:1、java中內碼中的char使用UTF16的方式編碼,一個char佔用兩個位元組;2、java中外碼中char使用UTF8的方式編碼,一個字元佔用【1~6】個位元組。
在討論這個問題之前,我們需要先區分unicode和UTF。
unicode :統一的字元編號,僅提供字元與編號間對映。符號數量不斷增加,已超百萬。詳細:[https://zh.wikipedia.org/zh-cn/Unicode]
#UTF :unicode轉換格式 (unicode transformation format) 。定義unicode中編號的編碼方式。 utf8和utf16便是其中兩種實現方式。其中utf8為變長表示,長度可能時1~6個位元組;utf16為變長表示,長度可能是2或4個位元組。詳細:UTF8 [https://zh.wikipedia.org/zh-cn/UTF-8] UTF16 [https://zh.wikipedia.org/zh-cn/UTF-16]
#接著,要分辨內碼(internal encoding)和外碼(external encoding)。
內碼 :某種語言運行時,其char和string在記憶體中的編碼方式。
外碼 :除了內碼,都是外碼。
要注意的是,原始碼編譯產生的目標程式碼檔案(執行檔或class檔案)中的編碼方式屬於外碼。
先看內碼
JVM中內碼採用UTF16。早期,UTF16採用固定長度2位元組的方式編碼,兩個位元組可以表示65536種符號(其實真正能表示要比這個少),足以表示當時unicode中所有字元。但是隨著unicode中字符的增加,2個位元組無法表示所有的字符,UTF16採用了2位元組或4位元組的方式來完成編碼。 Java為因應這種情況,考慮到向前相容的要求,Java用一對char來表示那些需要4位元組的字元。所以,java中的char是佔用兩個字節,只不過有些字元需要兩個char來表示。
外碼
Java的class檔案採用UTF8來儲存字符,也就是說,class中字元佔1~6個位元組。
Java序列化時,字元也採用UTF8編碼,佔1~6個字元。
總結:
java中內碼(運行記憶體)中的char使用UTF16的方式編碼,一個char佔用兩個字節,但是某些字元需要兩個char來表示。所以,一個字元會佔用2個或4個位元組。
java中外碼中char使用UTF8的方式編碼,一個字元佔用1~6個位元組。
UTF16編碼中,英文字元佔兩個位元組;絕大多數漢字(尤其是常用漢字)佔用兩個位元組,個別漢字(在後期加入unicode編碼的漢字,一般是極少用到的生僻字)佔用四個位元組。
UTF8編碼中,英文字元佔用一個位元組;絕大多數漢字佔用三個位元組,個別漢字佔用四個位元組。
EOF
#相關免費學習推薦:java基礎教學
以上是java中char佔用多少位元組的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本文討論了各種Java垃圾收集算法(串行,並行,CMS,G1,ZGC),它們的性能影響和適合大量堆的應用。

本文討論了Java虛擬機(JVM),詳細介紹了其在不同平台運行Java程序中的作用。它說明了JVM的內部流程,密鑰組件,內存管理,垃圾收集和性能Optimizatio

Java的Nashorn Engine可以在Java應用程序中啟用JavaScript腳本。關鍵步驟包括設置Nashorn,管理腳本和優化性能。主要問題涉及安全性,內存管理和未來兼容性

Java的Try-with-Resources通過自動關閉文件流或數據庫連接等資源來簡化資源管理,從而提高代碼可讀性和可維護性。

Java枚舉代表固定的值集,通過自定義方法和構造函數提供類型安全性,可讀性和其他功能。它們增強了代碼組織,可用於開關語句中以進行有效的價值處理。


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器