Java中的char占用几个字节

Posted wuqinglong

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java中的char占用几个字节相关的知识,希望对你有一定的参考价值。

概述

网上或书上都说是Java中的char占用2个字节,一直没有深入,直到接触了编码,才对此产生了疑问,今天来深入一下这个问题。

答疑

char在设计之初的时候被用来存储字符,可是世界上那么多字符,如果有1个字节,就意味着只能存储256中,显然不合适,而如果有两个字节呢,那么就可以存储2^16(65536)种,这个数量符合大多数国家的语言字符个数于是Java团队使用unicode作为编码,一个char作为2个字节来存储。

但是unicode只是一个标准,具体的实现还是有如:UTF-8或UTF-16等编码。

Java的char一定是2个字节吗?

不一定,与我们使用的字符集有关系,如果使用ASCII编码集,那么char占用一个字节,如果使用UTF-8编码格式呢?UTF-8是不定长编码,编码的长度是动态的,所以不一定。

char能存储中文吗?

这个问题依旧归结于使用的编码集,如果使用ASCII,那肯定不能存储,如果采用UTF-8,那可以。

总结

char的长度和是否能存储中文字符是和编码格式有关的。对于我们在编码的时候如果跨平台编码时,应该在编码、解码的时候设置对应的格式,防止由于编解码导致的异常。

以上是关于Java中的char占用几个字节的主要内容,如果未能解决你的问题,请参考以下文章

Java中char,short,int,long占几个字节和多少位

Java 中,数字,汉字,英文字母,...占多少字节

char、int、long它们各占几个字节?占几位?

java中的变量各占得字节数

java中的char,short,int,long占几个字节

java中一个制表符\t占几个字节