本帖最后由 Neverbelazy 于 2013-4-20 01:13 编辑
1.当基本数据类参与数学运算时,可以直接被看做是 基本数据类型
2.当定义的函数需要 输入类型为基本数据类型时,也可以传入 相应的基本数据类型类
3.Integer 类中,当对象值在 -128~127之中时,对象在内存中是唯一的,任何引用都指向同一个对象;在其外,每一个新生成的对象都开辟新的空间
4.程序自动初始化时,初始化值是null;
5.基于3,4;自动装拆有风险
参看如下代码- public class FinalTest {
- static Integer i;
- public static void main(String[] args){
- //
- Integer j=200; //局部对象,自动装箱
- System.out.println(j); //自动拆箱,输出200
- // Integer i; 初始化是0吗?
- System.out.println(i); //此时,i 是成员变量,输出的是null,此处不存在自动装箱初始化0
- //System.out.println(i+0); //此句报错
- i=200; //自动装箱,拆箱可以容许这样的代码
- System.out.println(i+0); // 自动装箱,输出200
-
- // Integer 对象在 -128-127 值范围内,是在内存唯一的对象,所有引用指向同一个对象 之外则是不同对象
- System.out.println("i==j?:"+(i==j)); // 输出 false ,这个运算时直接比较的地址值
- System.out.println("i==j?:"+((i+0)==(j+0))); //输出true,运算了,装箱了。。。就true了
- i=100; j=100;
- System.out.println("i==j?:"+(i==j)); // 输出 false ,这个运算时直接比较的地址值,但是这个这两引用,j指向同一个对象
- //自己定义的函数中,也可以自动装箱
- testForFunction(i);
- }
- public static void testForFunction(int x){
- System.out.println(x);
- }
- }
复制代码 |