所有的基本类型包装类和String 类型 都是比较特殊的。 他们每次运算后,都会生成一个新的对象。例如: Integer i = new Integer(1); i=i+1; 这两个 i 是不同的对象! String a = "aa"; a+="b"; 这两个 a 也不是同一个对象! 关于基本包装类和 String 类型,它们在传参时,传递的仅仅是值,并非引用!
public class Test{
static int intk(Integer k){ int s=k.intValue(); s++; return s; } public static void main(String[] args){ Integer k=new Integer(1); k=Intk(k); System.out.print(k); } }
k=2;
System.out.print(k);
是这个意思吗
这样的结果是2?
k=2相当于
k = Integer.valueOf(2)
static void Intk(Integer k){
k++;
}
public static void main(String[] args){
Integer k=new Integer(1);
Intk(k);
System.out.print(k);
}
}为啥出来的结果是1呢?传入Intk的不是k的引用吗?
他们每次运算后,都会生成一个新的对象。例如:
Integer i = new Integer(1);
i=i+1;
这两个 i 是不同的对象!
String a = "aa";
a+="b";
这两个 a 也不是同一个对象!
关于基本包装类和 String 类型,它们在传参时,传递的仅仅是值,并非引用!
static int intk(Integer k){
int s=k.intValue();
s++;
return s; }
public static void main(String[] args){
Integer k=new Integer(1);
k=Intk(k);
System.out.print(k);
}
}