日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java char所占用的字节_关于unicode:为什么Java char原语占用2个字节的内存?

發布時間:2024/9/30 java 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java char所占用的字节_关于unicode:为什么Java char原语占用2个字节的内存? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

有什么理由為什么Java char原始數據類型為2個字節而不像C為1個字節?

謝謝

簡短的答案是因為它們無聊:他們應該使用32位字符。

不,他們不應該使用32位寬的字符。 這將使開銷更大!

@ vy32:是的。 他們確實應該使用6位寬的字符。 這樣可以節省空間,而且畢竟大寫字母對于每個人都足夠。

如果要節省空間,每個字符5位就足夠了。 實際上,剩余的4個排列也可以使用-節省更多空間。

最初設計Java時,可以預期任何Unicode字符都可以容納2個字節(16位),因此char和Character是相應設計的。實際上,Unicode字符現在最多需要4個字節。因此,內部Java編碼UTF-16要求補充字符使用2個代碼單元。基本多語言平面中的字符(最常見的字符)仍使用1。每個代碼單元均使用Java char。 Sun的這篇文章很好地解釋了這一點。

我肯定Joel會喜歡"每個程序員都應該了解的字符編碼插件":joelonsoftware.com/articles/Unicode.html

Java中的char是UTF-16編碼的,每個字符至少需要16位存儲空間。

在Java中,字符使用UTF-16編碼,使用2個字節,而普通的C字符串或多或少只是一個字節。在設計C時,使用ASCII(僅覆蓋英語字符集)被認為是足夠的,而Java設計人員已經在考慮國際化。如果要對C字符串使用Unicode,則首選UTF-8編碼,因為它以ASCII作為子集,并且不使用0字節(與UTF-16不同),后者用作字符串的結尾C中的marker標記。在Java中不需要這樣的字符串結尾標記,因為此處的字符串是復雜類型,具有明確的長度。

在以前的語言中,使用了C ASCII表示法。

范圍是127,代表127個唯一符號和語言字符。

JAVA帶有一個稱為" INTERNATIONALIZATION"的功能,即所有人類可讀字符(包括區域符號)也已添加到其中,并且范圍也得到了擴大,因此需要更多的存儲空間,因此將所有這些符號統一的系統為"標準Unicode系統"等

該統一要求在JAVA中需要額外的字節。

第一個字節保持原樣,ASCII字符的范圍在C,C ++中為127,但是將統一字符附加到它們之后。

因此,JAVA中char為16位,C語言中為char 8位。

Java的?教程:

The char data type is a single 16-bit Unicode character. It has a minimum value of '\\u0000' (or 0) and a maximum value of '\\uffff' (or 65,535 inclusive).

Java被用作國際化語言,因此它以不同的語言工作,并且需要占用一個以上的字節,這就是為什么它在char中占用2byte的空間。

因為例如中文不能處理一個字節的字符。

我們知道c支持ASCII,其中java支持Unicode,其中包含3件事:

1-ASCII

2個擴展的ASCII

3種本地語言字符

ASCII是unicode的子集.ASCII僅支持英語,而Unicode支持跨國語言。否則,由于所有原因,java字符在UTF-16內編碼,使用2字節。由于Unicode是ASCII的擴展版本,所以它使用8位的16位。

總結

以上是生活随笔為你收集整理的Java char所占用的字节_关于unicode:为什么Java char原语占用2个字节的内存?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。