java中值传递与引用传递!

本文详细阐述了值传递和引用传递的区别。值传递在函数调用时将参数的副本传入,不会影响原值;而引用传递则传递的是参数的引用地址,导致函数内部的修改会直接影响原参数。特别地,对于Java的包装类和String,虽然它们是对象,但在函数调用中,即使是引用传递,也无法直接修改原始对象的内容,体现了值行为。此外,基本类型通常采用值传递,引用类型则是通过引用传递,其中包装类是个特例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

值传递:是指在调用函数时将实际参数复制一份传递到函数中,这样在函数中对参数的修改就不会对之前的值有影响。
引用传递:这里是将参数的引用地址传递到了函数中,这样对参数的修改就会影响到实际参数。

通俗一点讲就是:
值传递就是将值复制了一个,然后将复制那个传递到了函数中,相当于一个副本,对副本的修改,对原始值无影响。
引用传递也是将值复制了一次,但是这个值是引用,将对堆中地址的引用复制了一次传递到了函数中,原参数的引用和复制的引用都指向同一个地址,所以复制引用对内存中进行了修改,原引用中的数据也变了。

比较特别的就是包装类,他其实引用传递,但是,函数中对他的修改不会对原参数有影响。

通常基本类型就是值传递,因为基本类型是存放在栈中的,引用类型是放在堆中的,在栈中存放的引用地址,所以是引用传递。比较特别的就是包装类了外加一个 String类。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值