http://topic.csdn.net/u/20120605/09/dc0c4e6a-aef3-41c8-9f68-5dd4180b017a.html
Integer t = 222 ,ina = 128 ,ind = 128;
int d = 222 ;
System.out.println(d == t);
System.out.println(t == d);
System.out.println(ina == ind );
上面的代码输出:
true
true
false
这个与Integer类设计有关
Integer类的源码:[code=Java][/code]
static final Integer[] cache = new Integer[-(-128) + 127 + 1];
static {
for(int i = 0; i < cache.length ; i++){
cache[i] = new Integer(i - 128);
}
}
从上面代码可以看出系统把-128~127之间的整数自动装箱成Integer实例,并放入一个名为cache的数组缓存起来,如果把一个-128~127之间的整数自动装箱成一个Integer实例,实际上就是直接指向数组元素,所以相等;但每次把一个不在-128~127的范围内整数自动装箱成Integer实例时,系统需重新创建一个Integer实例。【ps:参考《疯狂java讲义》】
int ,Integer 只要数值相等就相等,Integer 只有在-128~127内才相等;
int a = 0;Integer b = new Integer(4);
int a = b;自动拆箱
Integer b = a;自动装箱
分享到:
相关推荐
在Java编程语言中,将`Integer`对象转换为基本数据类型`int`有两种常见的方法:`Integer.parseInt()`和`Integer.valueOf()`。理解这两种方法的区别和应用场景对于编写高效且正确的Java代码至关重要。 首先,我们来...
在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型(Primitive Type),它...
在Java编程语言中,`int`和`Integer`都是用于表示整数值的数据类型,但它们之间存在着显著的差异。理解这些区别对于编写高效且优化的Java代码至关重要。 首先,`int`是Java中的原始数据类型之一,它直接存储在栈...
在实际开发中,根据具体需求选择合适的方法进行类型转换和比较。例如,在数据库查询中,可能需要将用户输入的String类型的ID转换为int类型进行比较;在显示数据时,可能需要将计算结果的int类型转换为String类型以便...
在Java编程语言中,`Integer`和`int`是两种不同的数据类型,它们在使用上有一些关键的区别。首先,`int`是Java的八种原始数据类型之一,它用来存储整数值,如-2147483648到2147483647之间的数字。`int`变量的默认值...
Java 中 int 和 Integer 的区别 Java 中的数据类型可以分为基本数据类型和复杂数据类型,int 是基本类型,而 Integer 是一个类。下面是它们之间的主要区别: 1. 数据类型 int 是基本数据类型,直接存储数值,而 ...
Java 中 int 和 Integer 的区别 在 Java 编程语言中,int 和 Integer 是两种不同的数据类型,虽然它们看起来很相似,但它们有着根本的区别。下面我们将详细探讨这两种数据类型的差异。 基本类型 vs 复杂数据类型 ...
Java 中的 String 和 int 类型的相互转换是一个基本的数据类型转换操作,我们可以使用多种方法来实现这种转换,例如使用 `Integer.parseInt()` 方法、`Integer.valueOf()` 方法、`String.valueOf()` 方法等。...
JAVA 中的 Integer 比较 在 Java 中,我们经常需要比较两个 Integer 对象是否相等,但是在使用 "==" 运算符时,可能会出现一些意外的结果。本文将深入探讨 Java 中的 Integer 比较,了解为什么使用 "==" 运算符可能...
Java Integer类和int是Java中两个相关却又不同的概念,很多开发者容易混淆它们之间的区别本文将通过实例来了解Java Integer类和int的区别。 知识点1:自动装箱和拆箱 在Java中,我们可以直接声明Integer i = 10,...
在Java编程语言中,`int` 和 `Integer` 是两种截然不同的数据类型,它们各自具有独特的特性和用途。理解这两者之间的差异对于编写高效、可靠的代码至关重要。 首先,`int` 是Java中的一个基本数据类型,它代表整数...
Java 中 int 和 Integer 的区别 Java 作为一门面向对象的编程语言,具有两种基本数据类型:基本数据类型(primitive type)和引用类型(reference type)。在 Java 中,基本数据类型只有八个:boolean、char、byte...
对JAVA中的int类型和integer类型进行透彻分析的一个文档 很有帮助的哦 亲!
在Java编程语言中,Integer和Byte之间的转换是常见的操作,特别是在处理二进制数据或网络通信时。本文档主要探讨了如何在Java中实现这两种数据类型的转换,包括有符号和无符号的转换。 首先,Integer在Java中占用4...
在Java编程语言中,`int` 和 `Integer` 都是用来表示整数的,但它们在性质和使用场景上有着显著的区别。理解这两者之间的差异对于编写高效且符合Java语法规则的代码至关重要。 首先,`int` 是Java中的一个基本数据...
在Java编程语言中,数据类型的转换是常见的操作。当我们处理数值时,可能需要将一个大范围的数据类型转换为一个小范围的类型。对于整型数据,`long` 和 `int` 是两种不同的类型,它们分别表示不同长度的整数。`long`...
首先,我们要理解Java中的基本类型int和引用类型Integer的区别。int是Java的基本数据类型,它占用32位存储空间,直接存储数值,而Integer是int的包装类,是一个对象,它包含一个int类型的成员变量。在Java中,对象的...
### Java中Long与Integer比较易犯错误总结 ...通过以上的讨论,我们可以看到,在Java中正确处理`Long`和`Integer`的比较是非常必要的。遵循最佳实践,可以有效地避免潜在的错误,并提高程序的健壮性和效率。