美文网首页Java
你所不知道的Java之char默认值

你所不知道的Java之char默认值

作者: Lydia_Lovely | 来源:发表于2018-07-08 19:48 被阅读254次
毋意,毋必,毋固,毋我。

前言

子绝四:毋意,毋必,毋固,毋我。主观臆断、武断绝对、拘泥固执、自以为是,这四点也是我们每个有独立思想的人应该避免的思维缺陷。

我们知道Java基本数据类型有8种,按所占存储空间从小到大依次说出Java基本数据类型,你能脱口而出吗?

额,卡壳了。

序号 数据类型 大小 默认值
1 byte 8bit (byte)0
2 char 16bit '\u0000'
3 short 16bit (short)0
4 int 32bit 0
5 float 32bit 0.0f
6 long 64bit 0l
7 double 64bit 0.0d
8 boolean - false

For type char, the default value is the null character, that is, '\u0000'.

无意间注意到char的默认值为'\u0000'--4位十六进制数据所表示的字符。
我们知道Java使用的是Unicode字符吗系统,查Unicode字符列表,发现它代表空字符NUL。

那么('\u0000' = 0 = null character) = null?

show me the code.

public class PrimitiveType {

    char c;

    @Test
    public void testChar() {
        PrimitiveType t = new PrimitiveType();
        char c1 = '\u0000';
        char c2 = '\0';
        char c3 = '\u2400';
        System.out.println("c1: " + c1);
        System.out.println("c2: " + c2);
        System.out.println("c3: " + c3);
        System.out.println("c: " + c);
        System.out.println("c1==c: " + (c1 == t.c));
        System.out.println("c1==c2: " + (c1 == c2));
        System.out.println("c1==c3: " + (c1 == c3));
    }
}

结果

image

char默认值'\u0000'不是一个可打印字符,和Java的null并不等同,仅代表Unicode编码中的空字符。

参考

Initial Values of Variables

what's the default value of char?

空字符

相关文章

  • 你所不知道的Java之char默认值

    前言 子绝四:毋意,毋必,毋固,毋我。主观臆断、武断绝对、拘泥固执、自以为是,这四点也是我们每个有独立思想的人应该...

  • Eclipse打印Java的char默认值,出现方框原因

    众所周知,Java为char赋值默认值(只有成员变量才会赋值,对于局部变量,不会有默认值),默认值就是'\u000...

  • String.replace()

    Java APIString replace(char oldChar, char newChar)Returns...

  • [转载]Java char 与 byte

    转载自 Java char 与 byte 问:java char 能否存储一个汉字,为什么?答:char 类型一般...

  • 你所不知道的Java之Integer

    以下内容为作者辛苦原创,版权归作者所有,如转载演绎请在“光变”微信公众号留言申请,转载文章请在开始处显著标明出处。...

  • 你所不知道的Java之Switch

    switch(Long)的故事 作为一个java新手在学习java的过程中,机缘巧合,我写了一段这样的代码 出现了...

  • 你所不知道的Java之HashCode

    以下内容为作者辛苦原创,版权归作者所有,如转载演绎请在“光变”微信公众号留言申请,转载文章请在开始处显著标明出处。...

  • 你所不知道的Java之HashCode

    之所以写HashCode,是因为平时我们总听到它。但你真的了解hashcode吗?它会在哪里使用?它应该怎样写? ...

  • java基础类型教程书目录

    Java boolean Example Java byte Example Java char Example ...

  • Java |  char

    猜一下这段java 代码结果输出什么? Unicode 字符定义 Unicode 定义了全球所有文字(字符)的编码...

网友评论

    本文标题:你所不知道的Java之char默认值

    本文链接:https://www.haomeiwen.com/subject/jgzouftx.html