背景

  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包含几个字节相关推荐

  1. java中一个char_java 中一个char包含几个字节

    背景 char包含几个字节可能记得在上学的时候书上写的是2个字节,一直没有深究,今天我们来探究一下到底一个char多少个字节? Char char在设计之初的时候被用来存储字符,可是世界上有那么多字符 ...

  2. java中的char占几个字节

    参考地址 :http://www.cnblogs.com/fnlingnzb-learner/p/7272348.html 点击打开链接

  3. java中double类型占几个字节_java中各种数据类型占用字节数

    1字节(Byte)=8bit java的基本类型 类型 所占字节 byte 1 short 2 int 4 long 8 float 4 double 8 char 2 String中字母和汉字所占字 ...

  4. char几个字节java_java中的char占几个字节实例分析

    java中的char占几个字节实例分析 1:"字节"是byte,"位"是bit : 2: 1 byte = 8 bit : char 在Java中是2个字节.j ...

  5. 【Java基础】Java中的char是否可以存储一个中文字符之理解字符字节以及编码集

    Java中的一个char采用的是Unicode编码集,占用两个字节,而一个中文字符也是两个字节,因此Java中的char是可以表示一个中文字符的. 但是在C/C++中由于采用的字符编码集是ASCII, ...

  6. Java语言中一个字符占几个字节?

    要区分清楚内码(internal encoding)和外码(external encoding)就好了. 内码是程序内部使用的字符编码,特别是某种语言实现其char或String类型在内存里用的内部编 ...

  7. Java 语言中一个字符占几个字节?

    Java基本数据类型 类型 大小 范围/精度 byte 1字节 8位,最小值是 -128(-2^7): 最大值是 127(2^7-1) short 2字节 16位,最小值是 -32768(-2^15) ...

  8. 腾讯面试官问我Java中boolean类型占用多少个字节?我说一个,面试官让我回家等通知...

    来自:程序员乔戈里 ---------------第二天-------------- 什么是boolean类型,根据官方文档的描述[1]: boolean: The boolean data type ...

  9. 浅聊一下Java中的char类型

    什么是Unicode Unicode是一种字符编码方案,它为每种语言中的每个字符都设定了统一唯一的二进制编码,也就是规定了二进制和字符的映射,以实现跨语言.跨平台进行文本转换.处理的要求,但是它并没有 ...

最新文章

  1. Module 'matplotlib' has no 'contourf' member 使用Python导入matplotlib模块报错
  2. 【项目实战】:Python 商铺地址分布数据分析
  3. 一招一式, 成就“霸业”必做的9件大事
  4. Linux下cat命令各种用法
  5. 虚拟机使用计算机网络,虚拟机技术在计算机网络专业课程教学中的应用
  6. spring cloud(二)
  7. 什么是虚拟DOM(React16源码分析)
  8. mysql查找jdbc驱动包_查找已安装的JDBC驱动程序
  9. 形式语言与自动机之一 语言与文法
  10. Adobe Photoshop Lightroom 5.7.1
  11. 软件开发生命周期及开发模型
  12. 跑通SpringBoot + dubbo3.0.8 + zookeeper
  13. (翻译)斑马纹模式(Alternating Row Colors)
  14. GSM系统信令接续流程
  15. java yearmonth_Java Year atMonth(Month month)用法及代码示例
  16. 计算机配置动态硬盘,如何把硬盘的类型从动态变成基本?
  17. 产品研发的体系构建与研发过程管理第一讲
  18. 电子邮件传输之SMTP协议
  19. realloc函数UAF利用|攻防世界pwn进阶区supermarket
  20. 【HJLL-E3/A数字式零序电流继电器】

热门文章

  1. 那年,我们一起演的年会节目
  2. java计算机毕业设计果之芒农场销售系统(附源码、数据库)
  3. 堆优化器(Heap-Based Optimizer, HBO)
  4. 计算机考试准考证在哪里看
  5. 安装linux spacevim速度慢
  6. 数据分析算法-决策树(下)-课堂学习笔记
  7. 基于JAVA学生信息管理系统录像演示2021计算机毕业设计源码+系统+数据库+lw文档+部署
  8. 简易版零钱通(OOP)
  9. Java中对象和类的关系
  10. Tensorflow 2.x(keras)源码详解之第十章:keras中的模型保存与加载(详解Checkpointmd5模型序列化)