• Java中8种基本数据类型的大小都是固定的,与平台无关
  • 可以为数字字面量添加下划线,编译器会去除,如1_0000_0000表示1亿,3.1_4表示3.14
  • Java中没有任何类似unsigned的无符号类型,如果要获取一个数代表的无符号数据,需要使用其对应方法
  • Java的基本数据类型分配在栈中,被new创建的对象分配在堆中

内置类型

  • 整型
    • 整形字面量默认int类型
    • 前缀
      • 0x 十六进制
      • 0 八进制
      • 0b 二进制
  • 浮点型
    • 浮点字面量默认double类型
    • float精度为6~7位有效数字,double精度为15~16位有效数字
    • 浮点数也能用十六进制表示,但较复杂
  • 字符类型
    • unicode的转义序列范围为\u0000 ~ \uFFFF,且在使用时,4个字符必须完整
    • unicode的转义序列会在解析代码之前得到处理
  • 布尔类型
    • Java中的boolean类型不能和其他类型直接比较
    • Java中的所有非boolean类型都不能直接作为boolean类型使用

数据类型图
基本数据类型 - 图3

自动类型转换基本数据类型 - 图4

  • Java中,两个数值进行二元运算符时,都会进行自动转换(低级转换成高级),且遵守数据类型间的转换规则
    • 所有的byte,short,char型的值将被提升为int型
    • 有一个操作数是long型,计算结果是long型
    • 有一个操作数是float型,计算结果是float型
    • 有一个操作数是double型,计算结果是double型
    • 被fianl修饰的变量不会自动改变类型,当2个final修饰相操作时,结果会根据左边变量的类型而转化