Java传值机制和图解

2021/6/28 14:20:26

本文主要是介绍Java传值机制和图解,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

Java方法的传参机制及堆栈传值图解


概括:若定义方法时声明了形参,调用此方法时需传入对应类型的参数。

1. 传递的参数类型是基本类型

  基本类型传参时,传递的只是值,并非这个参数变量,例子如下:
public class ParameterTransfer {

    /*将传入值互换的方法*/
    public static void replace(int a,int b){
        int temp = a;
        a = b;
        b = temp;
        System.out.println("replace方法中a为:" + a);
        System.out.println("replace方法中b为:" + b);
    }

    public static void main(String[] args){
        int a = 6;
        int b = 9;
        ParameterTransfer.replace(a,b);
        System.out.println("main方法中a为:" + a);
        System.out.println("main方法中b为:" + b);
    }

}

  输出结果为:

   consoleimage00001

  • 解析图如下:
       parametertransferimage000100001

2. 传递的参数类型是引用类型

  引用类型传参时,传递的实质上是堆中某个地址码,即传递了对堆中某个对象的引用,所以只要有方法对其进行修改,会影响到参数本身所指向的堆中的具体对象。例子如下:

class Temporary{
    int a;
    int b;
}

public class ParameterTransfer {
    /*换值的方法,需传入一个对象*/
    public static void change(Temporary ty){
        int temp = ty.a;
        ty.a = ty.b;
        ty.b = temp;
    }

    public static void main(String[] args){
        Temporary ty2 = new Temporary();
        ty2.a = 6;
        ty2.b = 9;
        /*传入对象给change方法*/
        ParameterTransfer.change(ty2);
        System.out.println("main方法中ty2.a为:" + ty2.a);
        System.out.println("main方法中ty2.b为:" + ty2.b);
    }
}

  输出结果为:

   consoleimage00002

  • 解析图如下:
       parametertransferimage000100002

  • 总结:基本类型传值传递的是值,引用类型传值传递的是对对象的引用。



这篇关于Java传值机制和图解的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程