论坛风格切换切换到宽版
  • 4189阅读
  • 0回复

[Java]Integer内部类预创建 [复制链接]

上一主题 下一主题
离线路灯
 

发帖
562
金币
4350
威望
1778
股份
182
只看楼主 倒序阅读 使用道具 楼主  发表于: 2011-11-17

这道题你肯定答错,下面代码输出什么?
public static void main(String[] args) {
    Integer a = 100;
        Integer b = 100;
        if (a == b) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
        Integer c = 130;
        Integer d = 130;
        if (c == d) {
            System.out.println("true");
        } else {
            System.out.println("false");
        }
}

-------------------------
false
false
恭喜你答错了。
-------------------------
true
true
再次恭喜你答错了。
-------------------------


正确答案:
true
false
Integer类的内部, 有一个常量静态数组, 在Integer类被加载的时候, 预先创建了-128 ~ 127的Integer对象,所以当声明的Integer类型变量的值在-128 ~ 127的范围内时, 不会新创建对象, 直接引用数组中创建好的. 所以第一个结果会输出true



快速回复
限100 字节
批量上传需要先选择文件,再选择上传
 
上一个 下一个