char型变量可以存储一个中文汉字,为什么?

参考答案

char型变量可以存储一个中文汉字。

原因:

  • char型变量是用来存储Unicode编码的字符的,java采用unicode编码,而unicode编码字符集中包含了汉字。
  • unicode编码占用两个字节,2个字节(16位)来表示一个字符, 无论是汉字还是数字字母,或其他语言,char类型的变量也是占用两个字节。
  • 特殊情况:如果某个特殊的汉字没有被包含在unicode编码字符集中,那么,这个char型变量中就不能存储这个特殊汉字。

知识补充:

Java八种基本数据类型

1.   四种整数类型(byte、short、int、long)

  • byte:8 位,用于表示最小数据单位,如文件中数据,-128~127
  • short:16 位,很少用,-32768 ~ 32767
  • int:32 位、最常用,-2^31-1~2^31  (21 亿)
  • long:64 位、次常用

注意事项:

  • int i=5; // 5 叫直接量(或字面量),即 直接写出的常数
  • 整数字面量默认都为 int 类型,所以在定义的 long 型数据后面加 L或 l
  • 小于 32 位数的变量,都按 int 结果计算
  • 强转符比数学运算符优先级高。见常量与变量中的例子

2.   两种浮点数类型(float、double)

  • float:32 位,后缀 F 或 f,1 位符号位,8 位指数,23 位有效尾数
  • double:64 位,最常用,后缀 D 或 d,1 位符号位,11 位指数,52 位有效尾

注意事项:

  • 二进制浮点数 : 1010100010=101010001.0*2=10101000.10*2^10(2次方)=1010100.010*2^11(3次方)= . 1010100010*2^1010(10次方)
  • 尾数:  . 1010100010   指数:1010   基数:2
  • 浮点数字面量默认都为 double 类型,所以在定义的 float 型数据后面加F 或 f;double 类型可不写后缀,但在小数计算中一定要写 D 或 X.X
  • float  的精度没有 long 高,有效位数(尾数)短
  • float  的范围大于 long  指数可以很大
  • 浮点数是不精确的,不能对浮点数进行精确比较

3.  一种字符类型(char)

  • char:16 位,是整数类型,用单引号括起来的 1 个字符(可以是一个中文字符),使用 Unicode 码代表字符,0~2^16-1(65535) 。

 注意事项:

  • 不能为 0个字符。
  • 转义字符:\n  换行  \r  回车  \t Tab 字符  \” 双引号  \\ 表示一个\
  • 两字符 char 中间用“+”连接,内部先把字符转成 int 类型,再进行加法运算,char 本质就是个数!二进制的,显示的时候,经过“处理”显示为字符。

4.  一种布尔类型(boolean):true 真  和 false 假

5.  类型转换:       char–>

  • 自动转换:byte–>short–>int–>long–>float–>double
  • 强制转换:①会损失精度,产生误差,小数点以后的数字全部舍弃。②容易超过取值范围。

  6. 记忆:8位:Byte(字节型)

  • 16位:short(短整型)、char(字符型)
  • 32位:int(整型)、float(单精度型/浮点型)
  • 64位:long(长整型)、double(双精度型)
  • boolean(布尔类型)

以上,是Java面试题【char型变量可以存储一个中文汉字,为什么?】的参考答案。

 

输出,是最好的学习方法

欢迎在评论区留下你的问题、笔记或知识点补充~

—end—

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧