值传递和引用传递

客官°小女子只卖身不卖艺 2022-09-03 14:15 345阅读 0赞

值传递

方法调用时,实参把它的值传递给对应的形参。方法执行时形参数值的改变不影响实参。

引用传递

也称为传地址。方法调用时,实参的引用(地址,而不是参数的值)被传递给方法中的相对应的形式参数。在方法执行时,对形参的操作实际上就是对实际参数的操作。方法执行时形参数值的改变将会影响实参的值。java中没有引用传递


面试题

当一个对象被当做参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?

答:是值传递。Java编程语言只有值传递参数。当一个对象实例作为一个参数被传递到方法中时,参数的值就是该对象的引用一个副本。指向同一个对象,对象的内容可以在被调用的方法中改变,但对象的引用(不是引用的副本)是永远不会改变的。


按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数的值,调用代码中的原始值也随之改变。如果函数修改了该参数的地址,调用代码中的原始值不会改变.

当传递给函数的参数不是引用时,传递的都是该值的一个副本(按值传递)。区别在于引用。在 C++中当传递给函数的参数是引用时,您传递的就是这个引用,或者内存地址(按引用传递)。在 Java应用程序中,当对象引用是传递给方法的一个参数时,您传递的是该引用的一个副本(按值传递),而不是引用本身。

发表评论

表情:
评论列表 (有 0 条评论,345人围观)

还没有评论,来说两句吧...

相关阅读

    相关 传递引用传递

    值传递传递的是值得地址,引用传递传递的是句柄的地址。 解释:值传递就是:比如new一个Object类型的对象,把引用给一个变量x,这个值(对象)和变量都会占内存(引用在栈中,

    相关 传递,地址传递引用传递

    什么是值传递,地址传递和引用传递?它们有什么不同?这在学校考试,找工作面试中都是常见的问题。它们之间的区别容易搞错,长时间不用也容易忘记。最近又被问到这个问题,想想还是整理一下

    相关 Java传递引用传递

    概念 值传递:(形式参数类型是基本数据类型):方法调用时,实际参数把它的值传递给对应的形式参数,形式参数只是用实际参数的值初始化自己的存储单元内容,是两个不同的存储单元,

    相关 传递引用传递

    下面有一个代码非常好帮助理解 我的理解是: 引用在栈中,存储变量堆地址。实际变量在堆中。引用指向变量。 方法参数传递的是堆中地址的值(其实也是栈中变量存储的值),是