美文网首页
【Java】【基础】数值类型的比较判断

【Java】【基础】数值类型的比较判断

作者: IconExp | 来源:发表于2019-12-01 12:15 被阅读0次

场景

网上流传这样一个例子

public static void main(String[] args) {
    // write your code here
        int int1 = 12;
        int int2 = 12;

        Integer integer1 = new Integer(12);
        Integer integer2 = new Integer(12);
        Integer integer3 = new Integer(127);

        Integer a1 = 127;
        Integer a2 = 127;

        Integer a = 128;
        Integer b = 128;

        System.out.println("int1 == int2 -> " + (int1 == int2));
        System.out.println("int1 == integer1 -> " + (int1 == integer1));
        System.out.println("integer1 == integer2 -> " + (integer1 == integer2));
        System.out.println("integer3 == a1 -> " + (integer3 == a1));
        System.out.println("a1 == a2 -> " + (a1 == a2));
        System.out.println("a == b -> " + (a == b));
    }

输出结果是:

int1 == int2 -> true
int1 == integer1 -> true
integer1 == integer2 -> false
integer3 == a1 -> false
a1 == a2 -> true
a == b -> false

总结

  • == 用于基本数值类型的值之间,可以作相等判断。
  • == 对于引用数值类型实例之间,则是用于比较引用的。
  • Integer num = 127; 这类没有使用new关键字 且 数值在-128 ~ +127之间,num指向Integer缓存。详情见 Integer.java::IntegerCache源码 和 JVM参数【-XX:AutoBoxCacheMax 】
  • Integer和int相比较,无论谁在前,Integer会拆箱成int再进行比较

相关文章

网友评论

      本文标题:【Java】【基础】数值类型的比较判断

      本文链接:https://www.haomeiwen.com/subject/njkzwctx.html