JAVA值传递之基本数据类型和引用数据类型

本文深入解析Java中基本数据类型和引用数据类型在方法调用时的值传递机制。阐述了基本类型传递的是值副本,方法内修改不影响原值;而引用类型传递的是对象引用,方法内修改将影响原对象。

#1.基本数据类型值传递

package 经典小Demo.值传递;

public class Test {
    public static void main(String[] args) {
        int a=5;
        int b=10;
        change(a,b);
        System.out.println("a="+a);
        System.out.println("b="+b);
    }
    public static void change(int a,int b){
        a=100;
        b=200;
    }

}

/**
*  a=5
*  b=10
*/
说明:
成员变量a,b与方法change的a,b无关,而change这个方法
执行完了之后里面的变量值要弹栈销毁,而这里的a,b值是
形参a,b的值。
当传递的参数为基本类型,形参的改变不影响实际参数。

总结:
普通类型的形参的改变不会影响实参。
-----------------------------------------------------------------------------------------------------------------------------------------

#2.引用数据类型的值传递
package 经典小Demo.值传递;

public class ArgumentsDemo02 {
    public static void main(String[] args) {
        int[] arr={1,2,3};
        change(arr);
        //把乘以2后的结果遍历输出
        for (int i = 0; i <arr.length; i++) {
            System.out.println(arr[i]);
        }
    }
    public static void change(int[] arr){
        //数组的每个元素乘以2
        for (int i = 0; i <arr.length ; i++) {
            arr[i]*=2;
        }
    }
}
/**
* 2
* 4
* 6
*/
说明: 
引用类型值传递传递的是地址值
方法的形参的改变会影响实参

总结:
引用类型的形参会影响实参的改变

 

转载于:https://www.cnblogs.com/shijinglu2018/p/10498228.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值