值传递和引用传递

本文详细介绍了JAVA中的两种数据类型:基本数据类型和引用数据类型。基本数据类型存储原始值,而引用数据类型存储对象的内存地址。在值传递中,方法内部的修改不会影响到原始变量;而在引用传递中,对形参的修改会直接影响到实参。通过示例代码展示了这两种传递方式的区别,强调了字符串和不可变对象在参数传递中的特殊性。
摘要由CSDN通过智能技术生成

JAVA中的数据类型

1.基本数据类型,其变量保存的是原始值,也就是变量就是数据本身。

常见的基本数据类型:byte,short,int,long,char,float,double....

2.引用数据类型,其变量保存的是引用值,也就是保存的是对象的内存空间的首地址。

常见的引用数据类型:类,数组,String....

值传递和引用传递

1.值传递

在调用方法时实参把实际的值传递给形参。就是将实际的值复制一份给形参,在方法内对形参进行修改仅仅改变形参的值,不会改变实参的值。缺点:不适合大量数据传递。

public static void main(String[] args) {
         int s=1000;
        System.out.println("函数内的s的值:"+test(s) );//test(s)将是的得值传的函数test()
        System.out.println("原本s的值:"+s);
    }
    public static int test(int s) {
        return s=90;//在这里对s进行了修改,并返回s的值
    }

运行结果

我们可以发现 原本的s没有发生改变,改变的是函数内的值。所以实参把实际的值传递给形参。就是将实际的值复制一份给形参,在方法内对形参进行修改仅仅改变形参的值,不会改变实参的值。

2.引用传递

在调用方法时实参把对象的地址传递给形参,形参接受的是原始值得地址。就是在方法内对形参进行修改会改变形参的值,也会改变实参的值。解决了值传递不适合大量数据传递的问题。

 public static void main(String[] args) {
         int[] s={1000};
        System.out.println("函数内的s的值:"+test(s) );//test(s)将是的得值传的函数test()
        System.out.println("原本s的值:"+s[0]);
    }
    public static int test(int[] s) {
        return s[0]=90;//在这里对s进行了修改,并返回s的值
  }

运行结果

 我们可以发现在方法内对形参进行修改会改变形参的值,也会改变实参的值。

 

 

通过上面的分析我们可以得出以下结论:

1.基本数据类型传值,对形参的修改不会影响实参;
2.引用类型传引用,形参和实参指向同一个内存地址(同一个对象),所以对参数的修改会影响到实际的对象。
3.String, Integer, Double等immutable的类型特殊处理,可以理解为传值,最后的操作不会修改实参对象。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值