我是靠谱客的博主 温暖芒果,最近开发中收集的这篇文章主要介绍Integer i3 = 200;,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

public class SEjava {
    public static void main(String[] args) {
        Integer i1 = 100;
        Integer i2 = 100;
        Integer i3 = 200;
        Integer i4 = 200;
        System.out.println(i1==i2);
        System.out.println(i3==i4);

    }
}

输出结果:

true
false

原因:
JVM会自动维护八种基本类型的常量池,int常量池中初始化-128~127的范围,所以当为Integer在-128-127时,在自动装箱过程中是取自常量池中的数值;
当Integer取值在常量池范围之内,对JVM为了节省空间, 当Integer的值落在-128~127之间时,JVM首先检查是否已存在值为127的Integer对象。如果是,则直接是引用已存在对象;
当超出常量池取值范围,则每次都会新建对象。Integer类中有一个静态内部类IntegerCache,在IntegerCache类中有一个Integer数组,用以缓存当数值范围为-128~127时的Integer对象。

最后

以上就是温暖芒果为你收集整理的Integer i3 = 200;的全部内容,希望文章能够帮你解决Integer i3 = 200;所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(35)

评论列表共有 0 条评论

立即
投稿
返回
顶部