您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
javase第二季学习笔记-值传递与引用传递
发布时间:2017-07-10 14:24:34编辑:雪饮阅读()
值传递:
public class NewKeywordDemo
{
public static void main(String[] args){
int x=10;
method(x);
System.out.println("x="+x);
}
public static void method(int mx){
mx=20;
}
}
当一个变量a将值赋值于另外一个(这里的参数mx就相当于一个临时变量)变量b后,若b再次被赋值,此时a的值不会受到影响。
栈内存中存储的是基本数据类型和引用变量
引用传递:
public class NewKeywordDemo
{
public static void main(String[] args){
Cat c=new Cat();
method(c);
System.out.println("Cat age="+c.age);
}
public static void method(Cat cat){
/*形参类型中竟然出现了非系统类型,其实像String这种也是一个类的类名,同理,若要形参接收一个对象,则形参的类型名就是这个对象所属的类的类名*/
cat.age=5;
}
}
class Cat
{
int age=2;
}
当一个变量a是一个对象的引用,那么该变量若赋值于变量b,此时变量
b改变了对象的属性值,则原变量a的对象的属性值也会跟着改变。
这是因为类实例化的对象是引用类型所致。
但是如果不仅仅是对象的属性修改值而是直接给临时变量赋值一个新的对象,则原变量a不会被影响到。
关键字词:javase,值传递与引用传递