数据类型相关内容

数据类型

  • 数据类型可以分为基本数据类型和引用数据类型两种

数据类型相关内容

  1. byte 占用1字节
  2. short 占用2字节
  3. char 占用2字节
  4. int 占用4字节
  5. long 占用8字节
  6. float 占用4字节
  7. double 占用8字节

自动类型提升

  • byte short char 在参与运算时 会自动提升为int 类型

    例如:byte b1=3,b2=4,b;
    b=b1+b2;
    b=3+4;

    第二句就会编译出错,出现“不兼容的类型: 从int转换到byte可能会有损失”,此处是因为b1,b2,b都定义为了byte类型,但是byte在参与运算时会自动提升为int类型进行运算,所以定义b应该单独进行定义为int型。
    第三句不会出现编译错误,是因为常量优化机制,如果是两个常量在运算,他会判断这个结果是否存在于这个数据类型的范围内,如果超过,则出现错误,反之,编译成功。

  • long float double 参与运算时会提升为 long float double类型

  • boolean不参与运算,只有true和false

“+”的两种作用

  • 运算
  • 连接
    例如:System.out.println(1+6);//7
    System.out.println("1"+'1');//“11”,有双引号中的字符串出现时,字符串左右不需要考虑ASCII码,但是运算需要从左到右顺序运算。
    System.out.println('1'+'2');//99,单个字符相加需要查找单个字符的ASCII码
    System.out.println(1+"2");//"12"连接左右
    System.out.println("1"+"2");//"12"
    System.out.println(1+3+"2"+3);//"42"+3="423",1和2进行运算,然后和2连接。
    }

  • 此处注意“”中是字符串,‘’中是单个字符,是双引号和单引号间的区别。

  • 如果出现System.out.println('1'+'2'+"3"+4);这样的运算,‘1’+‘2’运用ASCII码得99,99和字符串“3”连接得993,再和4连接得9934。