首页 > 编程语言 >[Java基础]Integer

[Java基础]Integer

时间:2024-08-01 23:39:55浏览次数:29  
标签:Java 对象 valueOf 基础 127 128 Integer

在Java中,Integer 类会对一些数值进行缓存,这样可以节省内存并提高性能。当你使用 Integer.valueOf(int) 方法来创建 Integer 对象时,对于数值在 -128 到 127 之间的整数,Java 会返回缓存中的对象实例。因此,对于这些范围内的整数,用 Integer.valueOf 创建的 Integer 对象实际上会引用同一个实例。

在你的示例代码中:

Integer i = Integer.valueOf(100);
Integer j = Integer.valueOf(100);

System.out.println(i == j);

由于100在 -128 到 127 的范围内,ij 都会引用同一个 Integer 对象。因此,i == j 会返回 true

但是,如果你使用超过这个范围的整数,Integer.valueOf 会创建新的对象,因此它们的引用会不同。例如:

Integer i = Integer.valueOf(200);
Integer j = Integer.valueOf(200);

System.out.println(i == j); // 这将打印false

这是因为200超出了 -128 到 127 的缓存范围,ij 会引用不同的 Integer 对象。

总结

  • 对于 -128 到 127 之间的整数,使用 Integer.valueOf 会返回缓存中的对象实例,因此 i == jtrue
  • 对于超出 -128 到 127 范围的整数,Integer.valueOf 会创建新的对象实例,因此 i == jfalse

如果要比较 Integer 对象的值,推荐使用 equals 方法,而不是 == 运算符:

System.out.println(i.equals(j)); // 比较值是否相等

标签:Java,对象,valueOf,基础,127,128,Integer
From: https://www.cnblogs.com/DCFV/p/18337801

相关文章