数据类型基本数据类型整数类型

  • byte(占1字节): -128~127
  • short(占2字节)
  • int(占4字节)
  • long(占8字节): 定义该类型需要在后面加上 L(如:long var = 1234L;)

浮点类型

  • float(占4字节): 定义该类型需要在后面加上 F(如: float var = 12.34F)
  • double(占8字节)
    浮点类型是不精确的,存在舍入误差的情况。因此,不要用浮点类型的数作比较
    银行业务这类高精准的需求,使用BigDecimal类

字符类型

  • char(占2字节): 只能定义一个字符
    注意:string不是基本数据类型,它是一个类,属于引用数据类型

要点

不同的数据类型进行运算,需要先转化为同一数据类型
数据类型的优先级(从低到高):byte-short-char-int-long-float-double

类型转换时,要考虑到内存溢出和精度的问题

//内存溢出问题int var1 = 128;byte var2 = (byte)var1;System.out.println(var2); //结果:-128//按道理var2应该是128,但实际上byte类型范围是-128~127,所以内存溢出,结果是-128//精度问题float var3 = 12.34Fdouble var4 = 12.34System.out.println((int)var3); //结果:12System.out.println((int)var4); //结果:12

高优先级转低优先级需要强制转化,低优先级转高优先级的数据类型是自动转化

int var1 = 128;//高到低 int->bytebyte var2 = (byte)var1;//低到高 int->doubledouble var3 = var1;

boolean类型

(占1位)值为 true 或 false

引用数据类型

  • 数组
  • 接口

要点

数据类型确定后,会有默认值
基本数据类型中数值类型默认为0或0.0,boolean类型默认为false
引用数据类型默认为null,但需要注意的是若数组内的元素类型是基本数据类型中的数值类型,那么默认值也是0或0.0