基本类型和引用类型作为参数传递

class Demo

{

public static void main(String[] args)

{

int x = 4;

show(x);

System.out.println("x="+x);

}

public static void show(int a)

{

a = 5;

 

}

}

 

 

 

基本类型作为参数传递时,其实就是将基本类型变量x空间中的值复制了一份传递给调用的方法show(),当在show()方法中x接受到了复制的值,再在show()方法中对x变量进行操作,这时只会影响到show中的x。当show方法执行完成,弹栈后,程序又回到main方法执行,main方法中的x值还是原来的值。

 

class Demo

{

int x ;

public static void main(String[] args)

{

 

Demo d = new Demo();

d.x = 5;

show(d);

System.out.println("x="+d.x);

}

public static void show(Demo d)

{

d.x = 6;

}

}

 

 

 

 

 

当引用变量作为参数传递时,这时其实是将引用变量空间中的内存地址(引用)复制了一份传递给了show方法的d引用变量。这时会有两个引用同时指向堆中的同一个对象。当执行show方法中的d.x=6时,会根据d所持有的引用找到堆中的对象,并将其x属性的值改为6.show方法弹栈。

java中的方法可以传递参数,参数的传递方法就是值传递。参数有形参和实参,定义方法时写的参数叫形参,真正调用方法时,传递的参数叫实参。调用方法时,会把实参传递给形参,方法内部其实是在使用形参。所谓值传递就是当参数是基本类型时,传递参数的值,比如传递i=10,真实传参时,把10赋值给了形参。当参数是对象时,传递的是对象的值,也就是对象的首地址。就是把对象的地址赋值给形参。基本类型当做方法的形参时

posted @ 2020-11-09 10:50  LvREN旅人  阅读(180)  评论(0)    收藏  举报