Java的字符表示格式

Java的字符表示格式是什麼?
JVM的設計者當初決定JVM中所有字符的表示形式時,是不允許使用各種編碼方式的字符並存的。
原因:如果內存中的Java字符可以以GB2312、UTF-16、BIG5等各種編碼存在,那麼對於開發者來說,連最基本的字符串打印,連接等操作都寸步難行。例如:一個GB2312的字符串後面連接一個UTF-8的字符串,那麼連接之後的結果是混亂的,無法選擇。
Java開發者牢記:在Java中字符只以一種方式存在——Unicode(不選擇任何特定的編碼,直接使用它們在字符集中的編號,這就是統一的唯一方法)。


但是Unicode在Java中到底指在哪裏呢?

是指在JVM中,在內存中,在代碼聲明的每一個char,String類型的變量中。例如:
char han = '永';
在內存的相應區域中,這個字符就表示0x6c38。
在java中,只要正確讀入了這個“永”字,那麼它在內存中的表示方式一定是0x6c38,沒有其他的值能代表這個字。JVM的這種約定是的一個字符分爲兩部分:JVM內部和os的文件系統。在JVM內部,統一使用Unicode表示,當這個字符被從JVM內部移到外部(即保存爲內部系統中的一個文件的內容時),就進行了編碼轉換,使用了具體的編碼方案。因此可以說,所有的編碼轉換至發生在邊界的地方,JVM和os的交界處,也就是各種輸入輸出流起作用的地方。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章