首頁 > Java > java教程 > 主體

Java 內部如何表示字串:UTF-16 或修改版 UTF-8?

DDD
發布: 2024-11-11 01:32:03
原創
953 人瀏覽過

How Does Java Internally Represent Strings: UTF-16 or Modified UTF-8?

解開 Java 的字串表示形式:UTF-16 還是修改後的 UTF-8?

在 Java 領域,字串的內部表示形式有一直是爭論的議題。兩個看似可靠的來源提供了相互矛盾的資訊:

一個來源建議 Java 使用 UTF-16 進行內部文本表示,而另一個來源則提出 UTF-8 的修改版本。下列哪一個說法成立?

答案:UTF-16 用於內部表示

Java 採用UTF-16 作為文本的內部表示,包括字串、字串建築商和其他相關結構。此編碼系統使用 16 位元 Unicode 代碼單元來表示 U 0000 到 U FFFF 範圍內的字元或 UTF-16 代碼單元。

用於序列化的修改版UTF-8

雖然Java 在內部支援UTF-16,但它使用UTF-8 的非標準變體來序列化字串。序列化涉及將 Java 物件轉換為可儲存和可傳輸的格式,在這種情況下,序列化字串使用修改後的 UTF-8 表示。

記憶體儲存:壓縮字串

在JVM 級別,Java 可能會使用壓縮字串(透過-XX: UseCompressedStrings 啟動),其中不需要UTF-16編碼的字串可以使用8 位元ISO-8859-1 編碼來儲存。此優化減少了特定類型字串的記憶體使用量。

Char 的位元組使用

Java 中的char 變數總是佔用2 個位元組,無論物件內的填充考慮因素為何.

代碼點和字元表示

需要注意的是,表示超出65535 限制的字元的代碼點可以使用一個或兩個字元來表示 (即 2 或 4 個位元組)。

以上是Java 內部如何表示字串:UTF-16 或修改版 UTF-8?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板