這篇文章主要介紹java中char占用的字節是多少,文中介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們一定要看完!
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中char占用的字節是多少的所有內容,感謝各位的閱讀!希望分享的內容對大家有幫助,更多相關知識,歡迎關注創新互聯-成都網站建設公司行業資訊頻道!
當前題目:java中char占用的字節是多少-創新互聯
本文網址:http://vcdvsql.cn/article10/ddgpgo.html
成都網站建設公司_創新互聯,為您提供軟件開發、App設計、網站建設、靜態網站、手機網站建設、電子商務
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯