基本数据类型

概览

数据类型
字节
位数
默认值

boolean

1

false

byte

1

8

0

short

2

16

0

char

2

16

u0000

int

4

32

0

float

4

32

0f

double

8

64

0d

long

8

64

0l

包装类缓存

基于性能和资源的考虑,integer和character,Boolean都添加了缓存。在范围之内不会新生成对象。

拆箱和装箱

xxxValue拆箱,value.of()装箱。

尽量避免拆箱和装箱引起的不必要的性能浪费。

private static long sum() {
    // 应该使用 long 而不是 Long
    Long sum = 0L;
    for (long i = 0; i <= Integer.MAX_VALUE; i++)
        sum += i;
    return sum;
}

浮点数计算,精度丢失

float a = 2.0f - 1.9f;
float b = 1.8f - 1.7f;
System.out.println(a);// 0.100000024
System.out.println(b);// 0.099999905
System.out.println(a == b);// false

计算机在表示一个数字时,有宽度限制,超出了限制就会被截断。因此无法使用浮点数进行计算。

在涉及金钱计算的系统,使用BigDecimal

Last updated

Was this helpful?