Java方法的参数传递注意事项(一)

Java方法的参数传递注意事项(一)

在学习了Java方法的功能之后,发现在方法的参数传递中存在着一些小坑,在这里对问题进行有一下梳理总结,方便日后的温习回顾。

传参类型

Java方法的参数传递方式主要分为两种
1.基本数据类型参数
可传入byte、short、char、int、long、float、double这八种基本数据类型;
例如:

public static void method(int i){
...
}

2.引用数据类型
可传入数组、对象等引用数据类型
例如:

public static void method(int[] arr){
...
}

问题分析

我们通过两个实例来形象描述问题:
实例1(基本数据类型传参)

    /**
     * 基本数据类型参数传达
     */
     
	//change方法
    public static void change(int num1) {
        //num1赋值为1000
        num1 = 100000;
    }
    //主方法
    public static void main(String[] args) {
    System.out.println("--基本数类型参数传递--");
    int num1 = 100;
    System.out.println("运行之前num1为:" + num1);
    System.out.println("调用change方法");
    change(num1);
    System.out.println("运行之后num1为:" + num1);
    }

运行结果如下:

在这里插入图片描述
实例2(引用数据类型传参)

    /**
     * 引用类型数据参数传递
     */
    //change1方法
    public static void change1(int[] arr) {
        //数组arr中索引1 的值赋值为100
        arr[1] = 100;
    }
    //主方法
    	public static void main(String[] args) {
        System.out.println("--引用类型参数传递--");
        int[] arr = {10, 20, 30};
        //遍历数组
        System.out.println("调用前数组:");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
        //调用change2方法
        System.out.println("调用change2方法");
        change1(arr);
        System.out.println("调用后数组:");
        for (int i = 0; i < arr.length; i++) {
            System.out.println(arr[i]);
        }
   }

运行结果如下:

在这里插入图片描述
通过上述两例,可以看出,在方法体中对传入参数进行更改后,基本数据类型参数并未发生实质性变化,而引用类型参数则发生值的变化。

总结

1.基本数据类型参数传递,其实质是新声明一个方法内变量,将传入参数值赋值于变量并传入方法,当方法运行完毕后该变量即被销毁,随着方法的结束其值并为发生改变。
2.引用数据类型参数传递,以数组为例子,其实质是将数组存放在堆中的首地址传入方法,当在方法中对数组进行修改,如修改索引值为1的数组数据,其值被成功修改,随着方法的结束其值也发生改变。

补充

暂无;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值