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小白进阶之值传递-地址传递的主要内容,如果未能解决你的问题,请参考以下文章