dazhi2010 2017-07-13 06:02 采纳率: 0%
浏览 10021

关于Java的Byte和Integer的equals及==对比方式的问题

Byte a = 1;
Byte b = new Byte("1");
Byte c = 0x1;
System.out.println(a.equals(1));
System.out.println(a==1);
System.out.println(a.equals(b));
System.out.println(a==b);
System.out.println(c.equals(1));
System.out.println(c==1);
System.out.println("======================");
Integer i = 1;
System.out.println(i.equals(1));
System.out.println(i==1);


图片说明

如上面的代码,为什么Byte的equals不能直接跟1比?比较结果为false;而Integer却可以?

  • 写回答

4条回答 默认 最新

  • 战在春秋 2017-07-13 06:26
    关注

    Byte.equals方法结果为true的前提是比较双方均为Byte类型。
    a.equals(1)返回值为false的原因就是不满足这个要求。

    1 这个常量默认是int类型,关于这点,官方文档有说明:
    https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html

    下面是这部分文字的截图:
    图片说明

    如果对您有帮助,请采纳答案好吗,谢谢!

    评论

报告相同问题?