java 中一个char包含几个字节
背景
char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节?
Char
char在设计之初的时候被用来存储字符,可是世界上有那么多字符,如果有1个字节,那么就意味着只能存储256中,显然不合适,而如果有两个字节,那么就可以存储65536种。这个数量符合大多数国家的语言字符的个数。于是java团队默认使用unicode作为编码,一个char作为2个字节来存储。
这里就有两个问题了?
1. java的char一定会有两个字节吗?
2. 中文字符可以存储在char里面吗?
先来回答第一个问题。char一定是两个字节吗?不是的,这个跟我们选用的字符编码有关,如果采用”ISO-8859-1”编码,那么一个char只会有一个字节。如果采用”UTF-8”或者“GB2312”、“GBK”等编码格式呢?这几种编码格式采用的是动态长度的,如果是英文字符,大家都是一个字节。如果是中文,”UTF-8”是三个字节,而”GBK”和”GB2312”是两个字节。而对于”unicode”而言,无论如何都是两个字节。
然后再回答第二个问题,对于一个char如果用”ISO-8859-1”来存储的话,肯定无法存储一个中文,而对于”UTF-8”、“GB2312”、“GBK”而言大多数中文字符是可以存储的。
总结
char的长度和是否能存储中文字符是和编码格式有关的。对于我们在编码的时候如果跨平台编码时,应该在编码、解码的时候设置对应的格式,防止由于编解码导致的异常。
java 中一个char包含几个字节相关推荐
- java中一个char_java 中一个char包含几个字节
背景 char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char char在设计之初的时候被用来存储字符,可是世界上有那么多字符 ...
- java中的char占几个字节
参考地址 :http://www.cnblogs.com/fnlingnzb-learner/p/7272348.html 点击打开链接
- java中double类型占几个字节_java中各种数据类型占用字节数
1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ...
- char几个字节java_java中的char占几个字节实例分析
java中的char占几个字节实例分析 1:"字节"是byte,"位"是bit : 2: 1 byte = 8 bit : char 在Java中是2个字节.j ...
- 【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集
Java中的一个char采用的是Unicode编码集,占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的. 但是在C/C++中由于采用的字符编码集是ASCII, ...
- Java语言中一个字符占几个字节?
要区分清楚内码(internal encoding)和外码(external encoding)就好了. 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编 ...
- Java 语言中一个字符占几个字节?
Java基本数据类型 类型 大小 范围/精度 byte 1字节 8位,最小值是 -128(-2^7): 最大值是 127(2^7-1) short 2字节 16位,最小值是 -32768(-2^15) ...
- 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知...
来自:程序员乔戈里 ---------------第二天-------------- 什么是boolean类型,根据官方文档的描述[1]: boolean: The boolean data type ...
- 浅聊一下Java中的char类型
什么是Unicode Unicode是一种字符编码方案,它为每种语言中的每个字符都设定了统一唯一的二进制编码,也就是规定了二进制和字符的映射,以实现跨语言.跨平台进行文本转换.处理的要求,但是它并没有 ...
最新文章
- Module 'matplotlib' has no 'contourf' member 使用Python导入matplotlib模块报错
- 【项目实战】:Python 商铺地址分布数据分析
- 一招一式, 成就“霸业”必做的9件大事
- Linux下cat命令各种用法
- 虚拟机使用计算机网络,虚拟机技术在计算机网络专业课程教学中的应用
- spring cloud(二)
- 什么是虚拟DOM(React16源码分析)
- mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
- 形式语言与自动机之一 语言与文法
- Adobe Photoshop Lightroom 5.7.1
- 软件开发生命周期及开发模型
- 跑通SpringBoot + dubbo3.0.8 + zookeeper
- (翻译)斑马纹模式(Alternating Row Colors)
- GSM系统信令接续流程
- java yearmonth_Java Year atMonth(Month month)用法及代码示例
- 计算机配置动态硬盘,如何把硬盘的类型从动态变成基本?
- 产品研发的体系构建与研发过程管理第一讲
- 电子邮件传输之SMTP协议
- realloc函数UAF利用|攻防世界pwn进阶区supermarket
- 【HJLL-E3/A数字式零序电流继电器】
热门文章
- 那年,我们一起演的年会节目
- java计算机毕业设计果之芒农场销售系统(附源码、数据库)
- 堆优化器(Heap-Based Optimizer, HBO)
- 计算机考试准考证在哪里看
- 安装linux spacevim速度慢
- 数据分析算法-决策树(下)-课堂学习笔记
- 基于JAVA学生信息管理系统录像演示2021计算机毕业设计源码+系统+数据库+lw文档+部署
- 简易版零钱通(OOP)
- Java中对象和类的关系
- Tensorflow 2.x(keras)源码详解之第十章:keras中的模型保存与加载(详解Checkpointmd5模型序列化)