码迷,mamicode.com
首页 > 编程语言 > 详细

java面试题

时间:2020-11-08 16:41:31      阅读:18      评论:0      收藏:0      [点我收藏+]

标签:相同   为什么   pre   new   不同   范围   als   有一个   不同的   

1、为什么Java中1000==1000为false而100==100为true?

  当 int 类型值 在 -127 到 127 之间,两个变量的引用地址是相同的。Integer.java 类,有一个内部私有类,IntegerCache.java缓存了从-128到127之间的所有的整数对象。

Integer c = 100;

  实际上是

Integer i = Integer.valueOf(100);

  即

public static Integer valueOf(int i) {
      if (i >= IntegerCache.low && i
          return IntegerCache.cache[i + (-IntegerCache.low)];
      return new Integer(i);
    }

  而不在  -127 到 127 这个范围的时候,就执行的是new Integer(i),是两个不同的引用对象

java面试题

标签:相同   为什么   pre   new   不同   范围   als   有一个   不同的   

原文地址:https://www.cnblogs.com/Jomini/p/13917645.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!