方法参数的值传递

Posted deam

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了方法参数的值传递相关的知识,希望对你有一定的参考价值。

Java中没有指针,所以也没有引用传递了,仅仅有值传递不过可以通过对象的方式来实现引用传递
(1)传递的是基本数据类型和String时,传递的是基本数据类型和String的内存值
String对象值不能改变,存储在常量区(Rom)
(2)传递的是非String对象时,传递的是非String类型的引用地址值
值传递过程是: 从实参传递给形参,即将实参的值赋值给形参,也就是说方法可以修改形参值,但不能修改实参值,例如:

 1 public void change( int i,Person person){//将实参i的值1赋值给形参i,实参person的地址值赋值给形参person
 2         i=3;//修改的是形参值,与实参无关
 3         person.setAge(20);//修改形参person地址值指向的对象内容,与实参指向的对象一样,实参指向的对象内容也被改了
 4         person = new Person();//修改的是形参值,引用地址值改了,与实参不同了
 5         person.setAge(30);//修改形参person地址值指向的对象内容,与实参指向的对象不一样
 6     }
 7 
 8     @Test
 9     public void testChange(){
10         int i = 1;
11         Person person = new Person();
12         person.setAge(10);
13         change(i,person);
14         System.out.println("i: "+i);//打印实参值 i: 1
15         Integer age = person.getAge();
16         System.out.println("age: "+age);//打印实参指向的对象内容 age: 20
17     }

 

以上是关于方法参数的值传递的主要内容,如果未能解决你的问题,请参考以下文章

辨析Java方法参数中的值传递和引用传递

如何通过代码设置片段标签?

第002弹:Java 中的值传递和引用传递

Kotlin - 如何将空值传递给片段 newInstance 方法?

在 Android Dialogfragment show() 方法 TAG 参数中传递啥

两个html的页面之间怎么传递参数啊