一道经典面试题

简介: 一道经典面试题

Integer中1000 == 1000为false而 100 == 100 为true


查看Integer.java类,会发现有一个内部私有类,IntegerCache.java,它缓存了从 -128 到 127 之间的所有的整数对象。

如果在这个区间内,他就会把变量当做一个变量,放到内存中;但如果不在这个范围内,就会去new一个Integer对象。

所以例子中i1和i2指向了一个对象。因此100==100为true。

比较Integer的值,比较靠谱的是通过Integer.intValue()这样出来的就是int值,就可以直接比较了,或者equals()比较。

/**
 * 
 */
public class TestInteger {
    public static void main(String[] args) {
        Integer i1 = 100, i2 = 100;
        System.out.println(i1 == i2);//true
        Integer i3 = 1000, i4 = 1000;
        System.out.println(i3 == i4);//false


        System.out.println(i3.intValue() == i4.intValue());//true
        System.out.println(i3.equals(i4));//true


        //Integer  与 int 类型比较(==)比较的是值。
        int i5 = 1000;
        System.out.println(i3 == i5);//true

    }
}
目录
相关文章
|
5月前
|
JavaScript 前端开发 Go
经典面试题目
经典面试题目
29 0
|
5月前
|
前端开发 JavaScript 程序员
【面试题】 经典但依然超难做的 前端面试题 (值得收藏)
【面试题】 经典但依然超难做的 前端面试题 (值得收藏)
104 0
|
5月前
|
Web App开发 前端开发 JavaScript
web前端经典面试题及答案(一)
web前端经典面试题及答案(一)
|
5月前
|
存储 Web App开发 缓存
web前端经典面试题及答案(二)
web前端经典面试题及答案(二)
|
前端开发
前端经典面试题 | this相关问题
前端经典面试题 | this相关问题
|
安全 Java Linux
抽空整理的45道经典多线程面试题
抽空整理的45道经典多线程面试题
185 0
|
存储 测试技术 索引
面试经典150题(1)
面试经典150题(1)
面试经典150题(1)
|
存储 缓存 JavaScript
2023前端面试题(经典面试题)
2023前端面试题(经典面试题)
|
前端开发 JavaScript 程序员
分析几道经典但依然超难做的前端面试题
分析几道经典但依然超难做的前端面试题
105 0
|
小程序
经典面试题
经典面试题