dcLunatic's blog

Java字节和字符的区别

字数统计: 332阅读时长: 1 min
2018/09/21 Share

Java中字符char与字节byte的区别

简述

byte是字节数据类型,是有符号型的,占1个字节,大小范围是-128~127;而char是字符类型的,在java中,用2个字节的Unicode码来表示一个字符,是无符号类型的,自然的,范围是0~65535。

区别与转换

  • byte是有符号类型的,占8位;而char是无符号类型的,占16位。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    char c = (char) -3; // char不能识别负数,必须强制转换否则报错,即使强制转换之后,也无法识别  
    System.out.println(c);
    byte d1 = 1;
    byte d2 = -1;
    byte d3 = 127; // 如果是byte d3 = 128;会报错
    byte d4 = -128; // 如果是byte d4 = -129;会报错
    System.out.println(d1);
    System.out.println(d2);
    System.out.println(d3);
    System.out.println(d4);

    结果:
    ?
    1
    -1
    127
    -128

  • char可以表示中文字符,而byte不可以

    1
    2
    3
    4
    5
    char e1 = '中', e2 = '国';  
    byte f= (byte) '中'; //必须强制转换否则报错
    System.out.println(e1);
    System.out.println(e2);
    System.out.println(f);

    结果:


    45

  • 当char和byte都是英文字符时,可以相互转换。(对应的int类型也可以与之互相转换)

    1
    2
    3
    4
    5
    6
    7
    8
    byte g = 'b';   //b对应ASCII是98  
    char h = (char) g;
    char i = 85; //U对应ASCII是85
    int j = 'h'; //h对应ASCII是104
    System.out.println(g);
    System.out.println(h);
    System.out.println(i);
    System.out.println(j);

    结果:

    98

    b

    U

    104

CATALOG
  1. 1. Java中字符char与字节byte的区别
    1. 1.1. 简述
    2. 1.2. 区别与转换