美文网首页
java基本类型与包装类

java基本类型与包装类

作者: 5f8350c571d8 | 来源:发表于2016-05-12 14:34 被阅读0次

    一个integer面试问题:

    • 下面这段代码的输出结果是什么?
      publicclassMain{
      publicstaticvoidmain(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;
      看下Integer的value0f源码就明白了:
      public static Integer valueOf(int i) {
      if(i >= -128 && i <= IntegerCache.high)
      return IntegerCache.cache[i + 128];
      else
      return new Integer(i);
      }
      代码中i的值范围是-128-+128之间。如果超出这个范围,会new一个新的对象,所以i=200时,时false。
    • 注意:把上面的Integer 换成Double,两个都是false,原因是二者的实现方法不同,在某个范围内的整型数值的个数是有限的,而浮点数却不是。具体原因建议看看源码的实现。

    相关文章

      网友评论

          本文标题:java基本类型与包装类

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