java中的值传递和引用传递

今天在群里看到有人说面试的时候被问值传递和引用传递的区别 我就写了一些代码用于却别一下。 简单的说,值传递相当于对形参赋值 如果我们有一个 变量int B=5 还有一个方法a(int BB) 此时如果A(B) 在方法a中不管你对B做什么,比如B=B+1,其原始的变量B仍然是5。 因为此时时机参数和形参他们在内存的地址是不一样的,所以我们在方法里面打印出的B=6,而在方法外面打印出B的值却仍然是5. 引用传递,既是传递的地址,因此你在方法内对变量做出的更改,在方法外对实际的变量也同样做出了更改。 [caption id="attachment_84" align="alignnone" width="372"]值传递与引用传递 值传递与引用传递[/caption] 以下为我自己写的代码,仅供参考 主类 public class ChuanDi { public static void main(String[] args) { int A=5; char[] ch={'a','b','c','d'}; ChuanDiLei cdl=new ChuanDiLei(); System.out.println("实际参数A的值="+A); cdl.A(A); String str=String.valueOf(ch); //需要将字符数组转化为String类型才可直接打印出 System.out.println("实际参ch的值是="+str); cdl.B(ch); } } 子类 public class ChuanDiLei { void A(int a){ a=a+1; System.out.println("类中a被改变的值a=a+1,是:"+a); } void B(char[] ch){ if(ch.length>2) //例子,用于判断数组长度 ch[1]='q'; String str=String.valueOf(ch); System.out.println("新的ch的值是:"+str); } }

爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情Blog Img