首页 青云排行榜 知识中心 控制台

下面程序结果为:(     )

public class Tester {
    public static void main(String[] args) {
        int x = 5;
        Integer x1 = x;
        Integer x2 = x;
        int x3 = new Integer(5);
        System.out.print(x1.equals(x));
        System.out.print(x1 == x);
        System.out.print(x2.equals(x1));
        System.out.print(x2 == x1);
        System.out.print(x2 == x3);
        System.out.print(x2.equals(x3));
    }
}

编译失败

falsefalsetruetruetruetrue

truetruetruetruetruetrue

falsefalsetruetruetruefalse

truefalsetruefalsefalsetrue

运行时异常被抛出

equals是值比较, ==是引用地址比较, 当引用指向同一个对象,引用的值是相同的。
Java中基本数据类型都涉及常量池问题,编译器能算出来的数值基本都在常量池中,且引用对象的值相同,则引用也指向同一对象。
关于我们
公司简介
联系我们
联系我们
售前咨询: leizhongnan@eval100.com
售后服务: 0755-26415932
商务合作: support@eval100.com
友情链接
金蝶软件
快递100
关注我们
Copyright © 2023-2023 深圳慧题科技有限公司 粤ICP备2023109746号-1 粤公网安备44030002001082