==为比较这两个数是否相等,而在比较引用数据类型时比较的是他们的内存地址。
而当我们用Integer表示int类型的时候,就会调用静态方法valueOf
在这段代码中明确的写着Integer的取值范围,是-128~127;所以当超过这个范围的时候就会重新在堆内存当中new一个新的Integer对象。这个时候内存地址的值不再相同所以就会返回false
为什么Integer a = 127,b = 127;时a==b为true,而Integer c = 128,d = 128;时a==b为false?
最新推荐文章于 2023-04-24 11:58:58 发布