Integer i1= new Integer(123);
Integer i2;System.out.println(i1);i2=i1;System.out.println(i2);输出:
123
123我想知道如何改变i2的值得时候i1的值也跟着改变?
Integer i2;System.out.println(i1);i2=i1;System.out.println(i2);输出:
123
123我想知道如何改变i2的值得时候i1的值也跟着改变?
Integer i2; System.out.println(i1); i2=i1;
i2=3;
System.out.println(i2); 之后输出i1就是3
public class Test {
public static void main(String[] args) {
Dog a = new Dog();
Dog b;
System.out.println(a.a);
b = a;
b.a = 5;
System.out.println(a.a);
System.out.println(b.a);
}
}class Dog {
public int a = 3;
}
这样却可以
如果是i2 = new Integer(3);是肯定不行的
所以楼主那样的效果肯定是不能实现了。
要改变i1的值只能在new一个Integer对象
Integer i = 5;
Field field = i.getClass().getDeclaredField("value");
field.setAccessible(true);
field.setInt(i, 6);
System.out.println(i);
}
}
都拥有不可变性
Integer[] i1= {123};
Integer[] i2; System.out.println(i1); i2=i1; System.out.println(i2); 输出:
123
123
Integer[] i2; System.out.println(i1); i2=i1;
System.out.println(i1[0]);
System.out.println(i2[0]);
i2[0] = 5;
System.out.println(i1[0]);
System.out.println(i2[0]);
[Ljava.lang.Integer;@5224ee
123
123
5
5
数组来解决楼主的问题确实可以
可以这样说:
就是说基本数据类型被创建,与非基本数据类型不同的就是传值是值传递??