int 和 Integer 都可以表示同一个整数,但是原理不一样,或者说:计算机给它们分配的内存空间不一样。比如:
int x = 20;
Integer x = new Integer(20)
它们都是往计算机中存储了一个值20,
但是第二个的原理更复杂。
两行代码:
Integer num; // Line1
num = new Integer(78); // Line2
现在对以上代码进行分析,得出我们余下的几个概念。
Line1,申明一个整型变量 num ,还没有存到计算机中,因而 num 不是实际数据。
Line2,详细分析:
1、使用运算符 new 为变量 num 分配了一个内存空间来存整数。这个内存空间是有地址
的,假如,内存地址编号为:2500 ;
2、Integer(78) 表示把78这个值存储到这个编号为2500的内存中;
3、接下来 new 再返回给 num 的是这个已经存了值的内存空间的地址,即:2500;也就
是说,变量 num 存储的是已分配内存空间的地址2500,而 2500处的内存存储的是数字 78;
经过上面的分析,接下来我们就给出几个概念。
1、任何使用类申明的变量(如:num )称作 “引用变量”。严格的说,引用变量时存储
内存空间地址的变量。
2、存储数字78的内存空间2500 称作 “Integer 对象”,另外,我们将Integer对象称
作Integer类的 “实例”。
3、因为 num 是一个 Integer 类型的引用变量,因此, num 可以存储任意 Integer 对
象的地址;换句话说,num 可以指向或者引用任何 Integer 对象。我们将 num 指向
的 Integer 对象称作“num 对象”
4、“Integer 对象” 也即是 “num 对象”。作者: 黑马_位志国 时间: 2013-3-6 19:34
Integer a = 100; ------->100是int类型,当把100赋值给a时,int类型的100会自动装箱成Integer
int b = 100;