1. 概述

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

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,那可以。

3. 总结

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

Java中的char占用几个字节相关推荐

  1. Java中boolean类型占用多少个字节

    原文地址:http://www.cnblogs.com/wangtianze/p/6690665.html?utm_source=itdadao&utm_medium=referral --- ...

  2. java 中一个char包含几个字节

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

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

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

  4. java中的char占几个字节

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

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

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

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

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

  7. java中char是几个字节_Java中char占用几个字节

    在讨论这个问题之前,我们需要先区分unicode和UTF. unicode :统一的字符编号,仅仅提供字符与编号间映射.符号数量在不断增加,已超百万.详细:[https://zh.wikipedia. ...

  8. Java中char占用几个字节

    在讨论这个问题之前,我们需要先区分unicode和UTF. unicode :统一的字符编号,仅仅提供字符与编号间映射.符号数量在不断增加,已超百万.详细:[https://zh.wikipedia. ...

  9. JAVA中char占用多少字节_Java中char占用几个字节

    https://www.cnblogs.com/louiswong/p/6062417.html https://www.cnblogs.com/fnlingnzb-learner/p/7272348 ...

  10. Java中Char占用几个字节???

    也许你看到的一些书上说Char占用2个字节,但事实真的的是这样吗? 非也: 与编码格式.中英文均有关系 uft8编码下占3个字节: GBK编码下占2个字节: 但是如果 char表示英文字母: 在uft ...

最新文章

  1. centos安装easy_instal
  2. unity3d游戏数据加密
  3. 机器学习(一)——线性回归、分类与逻辑回归
  4. 怎么部署_2020怎么部署新零售商城?
  5. 架构师讲解Java中websocket的应用
  6. MongoDB系列之——安装和启动
  7. dio设置自定义post请求_Flutter Dio简单二次封装和自定义Header
  8. yaf php源码,PHP-Yaf执行流程-源码分析
  9. Python豆瓣书籍信息爬虫
  10. Java中序列化和打印流
  11. QT+SQL Server实现车辆管理系统 -代码具体实现
  12. Word导出PDF出现空白页
  13. 渗透安全学习记录笔记
  14. Linux红帽认证工程师(RHCE)考试笔记(Ansible学习笔记)
  15. ueditor统计字数中文_百度UEditor修改右下角统计字数包含html样式
  16. 打印机设备与计算机连接类型,电脑打印机的连接方式 打印机的种类有哪些
  17. flink+mysql+connector_Flink SQL中connector的定义和实现
  18. 【数据处理脚本】RA-CNN模型数据集处理及训练出现的报错解决
  19. Irvue for Mac(壁纸软件)
  20. Elasticsearch:Rank feature query - 排名功能查询

热门文章

  1. 计算的未来30年:2050大会分享实录
  2. 一文看完“阿里云自动化运维沙龙 · 上海专场”整场干货
  3. 为什么抢不到红包的总是你?可能是家里路由器没放对
  4. 机会难得 | 这家上市公司终于招人了
  5. 【速来报名】中国影响力巨大的开源峰会即将召开
  6. 毕设题目:Matlab水果识别分级
  7. 【VRP】基于matlab遗传算法求解多车辆路径规划问题【含Matlab源码 1249期】
  8. python网络开发框架_宿迁python网站开发框架收费
  9. python pptx表格里的字体怎么调整_在python pptx中更改序列填充颜色
  10. mysql2008分数约束_关于SQL2008对表中列的约束