今天看引用传递/值传递相关的东西,说到String的值自初始化后不能修改,我就想,如果调用函数改变了String类对象的引用,那主函数里头的输出结果会不会变化,结果发现不行...同样的,...
今天看引用传递/值传递相关的东西,说到String的值自初始化后不能修改,我就想,如果调用函数改变了String类对象的引用,那主函数里头的输出结果会不会变化,结果发现不行...同样的,调用函数改变自定义Person类对象的引用后,在主函数中输出该对象的属性值,依旧是原来的值,这是什么道理...
代码如下:
public static void main(String[] args) {
// TODO code application logic here
String str1="java";
Person p1=new Person();
Person p2=new Person();
p1.age=1;
p2.age=2;
Change(str1); //这里不是应该是改变了str指向的内存地址么
Change(p1,p2); //同理,这里不是应该把对象p2的指向了p1的内存地址么
System.out.println(str1);
System.out.println(a);
System.out.println("p1.age="+p1.age+" p2.age="+p2.age);
}
public static void Chang