62,628
社区成员
发帖
与我相关
我的任务
分享
public class Test {
public static void add3(Integer i) {
Integer value = i;//传递的是main方法里面i的地址,value和i指向堆中的同一地址
/*Integer型的value和1进行运算时候使用intValue()方法得到int型的值
* 也就是value=Integer.intValue(value)+1;
* 赋值给value时使用Integer.valueOf()方法
* 使value重新指向一个新的对象。。。
* 这个过程根本没有对一开始指向的i的地址的值进行改变,而是重新指向另一个新的对象
* 所以输出还是129
* */
value += 1;
}
public static void main(String[] args) {
Integer i = new Integer(129);
add3(i);
System.out.println(i);
}
}