本文主要讲述Integer包装类的细节,通过创建Integer类的方式不同,探讨区别
示例代码如下:
1 public class IntegerExercise { 2 public static void main(String[] args) { 3 Integer num1 = new Integer(1); 4 Integer num2 = new Integer(1); 5 System.out.println(num1 == num2); // false 6 7 /* 8 IntegerCache.low:-128 9 IntegerCache.high:127 10 当i在-127到128范围内,在cache数组中取出 11 当i不在范围内,new Integer(i) 12 */ 13 /* 14 public static Integer valueOf(int i) { 15 if (i >= IntegerCache.low && i <= IntegerCache.high) 16 return IntegerCache.cache[i + (-IntegerCache.low)]; 17 return new Integer(i); 18 } 19 */ 20 // 由于i=1,在-128到127范围内,在cache数组中取值,仍是常量 21 Integer s1 = 1; // 自动封箱 22 Integer s2 = 1; 23 System.out.println(s1 == s2); // true 24 25 // 128不在-128到127范围内,new Integer(128) 26 Integer n1 = 128; 27 Integer n2 = 128; 28 System.out.println(n1 == n2); // false 29 } 30 }
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/98972.html