Skip to main content

基本数据类型

David LiuAbout 1 min

基本数据类型

Java 中有 8 种基本数据类型,分别为:

  • 6 种数字类型:
    • 4 种整数型:byteshortintlong
    • 2 种浮点型:floatdouble
  • 1 种字符类型:char
  • 1 种布尔型:boolean

间的大小如下:

基本类型位数字节默认值
int3240
short1620
long6480L
byte810
char162'u0000'
float3240f
double6480d
boolean1false

数字精度

浮点数丢精

大整数存储

包装类型

常量池技术/缓存机制

Byte,Short,Integer,Long 这 4 种包装类默认创建了数值 [-128,127] 的相应类型的缓存数据,

Character 创建了数值在 [0,127] 范围的缓存数据

Boolean 包装了 TRUE 和 FALSE 两个对象。直接返回 True or False

两种浮点数类型的包装类 Float,Double 并没有实现常量池技术。

记住:所有整型包装类对象之间值的比较,全部使用 equals 方法比较

自动拆装箱

从字节码中,我们发现装箱其实就是调用了 包装类的valueOf()方法,拆箱其实就是调用了 xxxValue()方法。

由于可能是null对象,所以自动拆箱的时候可能产生NPE。

三目运算符使用不当会导致诡异的 NPE 异常

public class Main {
    public static void main(String[] args) {
        Integer i = null;
        Boolean flag = false;
        System.out.println(flag ? 0 : i);
    }
}

类型对齐