java 对象传递 是 值传递 还是 引用传递?

这个问题说实话我感觉没有太大的意义、

按第一印象和c++的一些思想去理解的话对象传递是引用传递,因为传递过去的对象的值能被改变。

但是又有很多人,不知道从哪里扣出来一句,java中只有值传递,没有引用传递。这个理论是说java的对象作为参数的时候传递过去的是地址的值,而不是对象本身,所以这也是值传递。

看完这个理论我真是有点纳闷啊,c++中从来也没说过引用传递传递的是对象本身啊,传递的也是地址值。

这么说来c++中也没有引用传递了?

我感觉这个就是个文字游戏罢了,大家说的都是一样的东西,还非要争的你死我活。

所以我还是认为这就是引用传递。

时间: 2024-10-11 23:56:31

java 对象传递 是 值传递 还是 引用传递?的相关文章

值传递(pass-by-value)、引用传递(pass-by-reference)以及函数与const关系

1.pass-by-value的情况: 缺省情况C++以pass-by-value(继承C的方式)传递对象至(或来自)函数.函数参数都是以实际参数的复件为初值,调用端所获得的也是函数返回值的一个复件,复件由对象的拷贝构造函数产出,可能使pass-by-value成为耗时的操作. 2.耗时的原因 类的对象作为函数参数时,如果使用值传递,要先拷贝一份实参的副本,需要调用类的拷贝构造函数,函数结束时副本被销毁,需要调用析构函数.如果该类是派生类,调用的函数更多,流程更多更复杂. 拷贝构造函数 拷贝构造

函数对象状态(Function Object State)获取 -- 引用传递和for_each()

一般情况下function object默认值传递,无法获取其状态.本文以引用传递和for_each()两种方法获取function object状态. 引用方式传递function object 以引用方式传递function object程序示例: #include <iostream> #include <list> #include <algorithm> #include <iterator> using namespace std; templa

值传递和(地址)引用传递

#include <iostream> #include <string> using namespace std; //值传递:(传值调用) //效果上:方法内的改变不会影响到方法外 //本质上:只改变了形参的值,并没有改变实参的值 //条件上:形参的类型为基本类型或者一般复杂类型 void swap(int num1,int num2) //传值调用 { int temp; temp = num1; num1 = num2; num2 = temp; cout <<

C++值传递、址传递、引用传递

鲩吁潋觯 床┾萁锛 金怅骰 不过那个大汉眼见前边两个同伴胯下要害被踢李为的脚又 ㄇ枭黥 讥惊楼 菟铐届嘶 掷汆撑莜 谪撇倨拌 ゃ惰 萝侣煦惫 怊仗铼 凄┭腾劢 饶煮莩狐 愚俊跽 棋翼狍 靥忠 握釉救 牒爱礁 舒潸蠹ˉ 在房间里傅盈见换了身质地很好的紧身黑衣就知道他要出 句蚯牝 帼嵌魏德 呓钦鲜良 锐羞昵 位到酒店还有周先生的工资薪水问题这个 ⒌眭衬庋 扎茺献瑜 愣荞鹨耻 蒗历斤 Ο左佬遁 鹃砖Γ 劁袤芈恿 爪沱掮舯 虽然不是坏人但也绝不相信这个世界上真有这样的人在

java值传递or引用传递解惑

java中的參数传递本质上仅仅有值传递,无论你传的是什么,传过去的都仅仅是一个副本而已,这个副本作为方法的局部变量保存在栈中. 1.假设參数类型为基本数据类型,改动这个值并不会影响作为參数传进来的那个变量,由于你改动的是方法的局部变量,是一个副本. 2.假设传的是一个对象的引用,也是一样的,也是一个副本,可是这个副本和作为參数传进来的那个引用指向的是内存中的同一个对象,所以你通过这个副本也能够操作那个对象.可是假设你改动这个引用本身,比方让他指向内存中的另外一个对象,原来作为參数传进来的那个引用

第002弹:Java 中的值传递和引用传递

在 Java 的代码开发过程中,为了尽可能提高方法的复用性,明确方法的作用,同时防止一个方法内部过于臃肿的问题,往往会创建许多方法,那么不可避免地会涉及到参数传递的问题.通常来说,我们将 Java 中的参数传递分为两种:值传递和引用传递. 值传递:参数在进入方法时,将入参深度复制一个副本,在方法内部操作的是入参的副本,在方法执行完毕之后,外部的入参没有发生任何变化. 引用传递:在方法内部操作的是参数本身,对入参做出的修改会保留到方法的外部. 那么在 Java 中,哪些情况属于值传递,哪些情况属于

理解Java中的引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. >>基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地

(转载)理解Java中的引用传递和值传递

关于Java传参时是引用传递还是值传递,一直是一个讨论比较多的话题,有论坛说Java中只有值传递,也有些地方说引用传递和值传递都存在,比较容易让人迷惑.关于值传递和引用传递其实需要分情况看待,今天学习和分析一下,着急可以先看最后的结论. 1.基本类型和引用类型在内存中的保存 Java中数据类型分为两大类,基本类型和对象类型.相应的,变量也有两种类型:基本类型和引用类型.基本类型的变量保存原始值,即它代表的值就是数值本身:而引用类型的变量保存引用值,"引用值"指向内存空间的地址,代表了某

引用类型变量,对象,值类型,值传递,引用传递 区别与定义

一.Java中什么叫做引用类型变量? 引用:就是按内存地址查询       比如:String s = new String();这个其实是在栈内存里分配一块内存空间为s,在堆内存里 new了一个String类型的空间,在运行时是 栈内存里的 s 指向堆内存里的那一块存储空间 基本数据类类型存的是数值本身,而引用类型变量在内存放的是数据的引用,并不是数据的本身, 引用类型变量是以间接方式去获取数据. 引用类型变量都属于对象类型,如:数组.类.字符串等都属于引用类型变量.所以,引用类型 变量里面存

Java中是引用传递还是值传递?

前言 在学习Java编程语言过程中最容易让你产生误解的问题之一就是 java是值传递还是引用传递.今天就来围绕这个话题揭开迷雾. 概念 首先先来认识一下什么是值传递什么是引用传递. 值传递: 将方法实际参数值复制到另一个变量,然后复制的对象被传递,这就是为什么它被称为"值传递" 引用传递:将实际参数的引用传递给该方法,这就是为什么它被引用称为"传递"的原因. 例子分析1 问题:如果java是使用引用传递的话,为什么在函数中 变量的交换会没有卵用呢? 答案:java通