引言
Java 方法参数的传递规则:基于值的传递;
Java 方法参数传递只有一种方式,基于值的传递,是变量值的复制;
基本类型就是其中值的复制、引用类型是引用值(地址)的复制
案例演示
通过下面代码演示Java中值的传递过程
1package com.ant.param;
2
3public class ParameterDemo {
4
5 public static void main(String[] args) {
6 int a =1; add(a);
7 Koo koo = new Koo(); add(koo);
8 System.out.println(a + "," + koo.a);
9 System.out.println(koo);
10 }
11
12 public static int add(int a){
13 a++;return a;
14 }
15
16 public static int add(Koo koo){
17 Koo k =koo;
18 k.a++; return koo.a;
19 }
20}
21
22class Koo{
23 int a = 1;
24}
25
26运行结果如下:
271,2
28com.ant.param.Koo@15db9742
程序执行过程中的内存图如下所示:
第1步:
第 2 步:值传递(将实参的值传递给形参)
第 3 步:执行方法体内部代码
第 4 步:方法迒回,回收临时变量
第 5 步:调用 Koo 默认无参构造器,在堆内存中创建对象
第 6 步:将堆内存中对象存储地址赋值给 koo = com.ant.param.Koo@15db9742
第 7 步:值传递(将实参的首地址传递给形参)
第 8 步
第 9 步
第 10 步:add(Koo koo)方法返回,回收临时变量
第 11 步:输出
变量的值:基本类型的值是其本身,引用变量的值是一个地址值,是被引用对象的首地址。
转自:https://mp.weixin.qq.com/s/dz0LJ152iXavwDlt306OqA