前言
今天要说的易错点是关于java的8种基本类型的使用,很多初学者比较容易犯的错误,亦或是基础不牢者也常常会犯,下面我们一起看一下,先从一个例子说起。
例子1
public class BugTest2 {
public static void main(String[] args) {
Integer a = 10;
Integer b = 10;
Integer c = 150;
Integer d = 150;
System.out.println(a == b);
System.out.println(c == d);
}
}
结果:
true
false
分析:
🙄,怎么肥事???竟然一个是ture一个是false!!!我想基础比较好的同学可能立马能想到原因了,没错,就是你想的哪个。
出现这个结果的原因是:Byte、Short、Integer、Long、Char这几个装箱类的valueOf()方法是以128位分界线做了缓存的。
源码:
这里以Integer为例,其他的类似。
/**
* Returns an {@code Inte