Integer的面试题

package com.javaSe.Integer;
/*
分析以下程序是为什么?


这个题目是Integer非常重要的一个面试题。
*/
public class IntegerTest07 {
    public static void main(String[] args) {
        Integer a = 128;
        Integer b = 128;
        System.out.println(a == b);// false
        
        /*
        java中为了提高程序的执行效率,将-128到127之间所有的包装对象提前创建好,放到了一个堆内存中的
        “整数型常量池”当中了,目的是只要用这个区间的数据不需要在new了,直接从整数型常量池中取出来。
        
        原理: x变量中保存的对象的内存地址和y变量中保存的内存地址是一样的。
         */
        Integer x = 127;
        Integer y = 127;
        // == 永远判断的都是两个对象的内存地址是否相等。
        System.out.println(x == y); // true
        
    }
}

 

posted @ 2020-07-02 23:13  xlwu丶lz  阅读(160)  评论(0编辑  收藏  举报