黑马程序员技术交流社区
标题:
这是值传递还是引用传递?
[打印本页]
作者:
徐西宏
时间:
2011-9-25 22:49
标题:
这是值传递还是引用传递?
当一个对象作为参数传递给一个方法后,此方法可以给便这个对象的属性,并可以返回变化后的结果,那么这里到底是值的传递还是引用传递?为什么
作者:
匿名
时间:
2011-9-25 23:15
java中任何类型的数据当作为参数传递给一个方法时都是按值传递的
基本数据类型传的是原始值的副本
引用数据类型传的是引用值得副本
所以在Java中对象作为参数传递时,是把对象在内存中的地址拷贝了一份传给了参数。
作者:
匿名
时间:
2011-9-25 23:21
这属于对象的引用传递,比如
class Student {
private String name;
private int age;
public Student(){
this.name="zhangsan";
this.age=15;
}
}
public class TestStudent{
public static void main(String [] args){
Student stu=new Student();
change(stu);
public static void change(Student st){
st.name="lisi";
st.age=40;
}
}
}上面是俩个类,student \testStudent 当你在TestStudent类中new出Sutdent类的实例对象的时候,你的stu变量就会在栈内存中产生,同时在堆内存中会产生相应的属性变量空间以及值,当你把stu当做参数传递给change函数时,就等于把stu在栈内存中存储的与其相对应在堆内存中的属性空间的地址传给了st变量,所以此时的st变量也指向了stu所指向的属性值,所以stu的属性值会改变
作者:
匿名
时间:
2011-9-26 00:44
引用传递吧
作者:
匿名
时间:
2011-9-26 07:58
引用传递:也称为传地址。方法调用时,实际参数的引用(地址,而不是参数的值)被传递给方法中相对应的形式参数,在方法执行中,对形式参数的操作实际上就是对实际参数的操作,方法执行中形式参数值的改变将会影响实际参数的值。
作者:
匿名
时间:
2011-9-26 10:43
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2