Java小白进阶之值传递-地址传递

Posted Amy小影儿

tags:

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

 1     class ClassA{
 2         int value;//成员变量
 3     }
 4         public class TestClassA{
 5             
 6             public static void main(String args[]){ 
 7                 int value = 10;//局部变量
 8                 changeInt(value); 
 9                 System.out.println(value);// 10
10                 
11                 ClassA ca = new ClassA();
12                  ca.value = 10;
13  
14                 changeObject(ca); 
15         
16                 System.out.println(ca.value);//11
17         }
18             public static void changeInt(int value){ 
19                 value++;
20         }
21             public static void changeObject(ClassA ca){
22              ca.value++;
23         }
24 
25     }


Java只有值传递,地址传递也是传递的那个地址值,第一个value++之后是一个新地址,第18行传入value,在里面++之后成为一个新的value,是一个局部变量,而打印语句打印的的是外面的那个value,所以是10;
 第二个value++是地址传递,地址没有改变,而是把地址指向的值加了1,而外面打印语句仍是这个地址,因为里面的值++了,所以打印出来是11;

 



以上是关于Java小白进阶之值传递-地址传递的主要内容,如果未能解决你的问题,请参考以下文章

go系列之值传递引用传递与指针传递

c语言进阶9-值传递与地址传递

如何使用java将数据从片段传递到android中的另一个片段?

Android Java将变量从片段传递到活动[重复]

java 将值/日期从活动传递到片段

片段:java.lang.RuntimeException:传递结果ResultInfo失败