学习
实践
活动
专区
工具
TVP
写文章

传递引用传递

“哥,说说 Java 到底是值传递还是引用传递吧?”三妹一脸的困惑,看得出来她被这个问题折磨得不轻。 “说实在的,我在一开始学 Java 的时候也被这个问题折磨得够呛,总以为基本数据类型在传参的时候是值传递,而引用类型是引用传递。” 接下来,我们必须得搞清楚,到底什么是值传递(pass by value),什么是引用传递(pass by reference),否则,讨论 Java 到底是值传递还是引用传递就显得毫无意义。 语言是通过引用传递的。 总结: Java 中的参数传递是按值传递的。 如果参数是基本类型,传递的是基本类型的字面量值的拷贝。 如果参数是引用类型,传递的是引用的对象在堆中地址的拷贝。 “好了,三妹,今天的学习就到这吧。”

16810
  • 广告
    关闭

    热门业务场景教学

    个人网站、项目部署、开发环境、游戏服务器、图床、渲染训练等免费搭建教程,多款云服务器20元起。

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    揭秘ECMAScript参数值传递“引用”传递

    揭秘ECMAScript参数值传递“引用”传递   js红皮书中文版中(P66)说:“ECMAScript中的所有参数传递的都是值,不可能通过引用传递参数”,然众所周知,js中有object数据类型 ,虽然其他高级语言函数参数传递分为值传递和引用传递,但是js中object作为参数是以值传递的(P71)。 和web引用的是同一个对象,即:值传递。 【错误理解】:之前错误地认为局部域中修改对象会在全局域中体现即为引用传递,这个理解是错误的,引用传递传递的是对象的内存地址,在函数中修改属性的对象就是函数外面创建的对象本身,与此处不同。 总结   js的参数传递与其他高级语言有所不同,只有值传递,即使传递的是对象。可以把ECMAScript函数的参数想象成局部变量,这个局部变量每次在函数进入时复制一份,函数执行完毕后立即销毁。

    34510

    浅析按值传递按引用传递

    请看一道选择题 下列关于按值传递按引用传递的描述中,正确的是( )。 为了理解 Java 语言中的值传递引用传递,首先给出下面的示例代码: public class Test{ public static void testPassParameter(StringBuffer 在调用方法 testPassParameter 时,由于 i 为基本类型,因此,参数是按值传递的,此时会创建一个 i的副本,该副本 i 有相同的值,把这个副本作为参数赋值给 n,作为传递的参数。 的值,这个值i 是没关系的。 如果在方法调用的过程中通过 ss1(字符串的引用或地址)来修改字符串的内容,因为 s1 ss1 指向同一个字符串,所以,通过 ss1 对字符串的修改对 s1 也是可见的。

    46210

    Java中的值传递引用传递详解

    testPassParameter(s1, i); System.out.println(s1); System.out.println(i); } } 运行结果: Hello World 1 按引用传递其实传递指针类似 在调用方法testPassParameter时,由于i为基本类型,因此参数是按值传递的,此时会创建一个i的副本,该副本i有相同的值,把这个副本作为参数赋值给n,作为传递的参数。 而StringBuffer由于是一个类,因此按引用传递传递的是它的引用(传递的是存储“Hello”的地址),如上图所示,在testPassParameter内部修改的是n的值,这个值i是没有关系的。 Integer赋值给b,此时ba其实已经没有任何关系了。 为了便于理解,假设s1和s2指向字符串的地址分别为0X12345678和0XFFFFFF12,那么在调用函数changeStringBuffer时,传递s1s2的引用就可以理解为传递了两个地址0X12345678

    44430

    Go 指针引用:值传递和址传递

    值类型指针类型 1.值类型 定义:变量直接指向存在内存中的值,我们称之为值类型。 值类型的变量的值存储在栈中。 值类型,将一个变量赋值给另一个变量,称为值拷贝。 没有操作,为什么值发生了变化 ptr 是指针类型,并被赋予了 num 的内存地址,当num值发现变化时,实际也就是 ptr 内存地址所对应的值变了 因为 ptr内存地址所对应的 内存值就是num的值 值内存地址指针 variable传递进函数的只是副本,他们都是在variable的副本上进行操作,并不影响 variable 的原本的值。 (2)不能有NULL 引用,引用必须合法的存储单元关联(指针则可以是NULL)。(3)一旦引用被初始化,就不能改变引用的关系(指针则可以随时改变所指的对象)。 引用的主要功能是传递函数的参数和返回值。 C++语言中,函数的参数和返回值的传递方式有三种:值传递、指针传递和引用传递。 “引用传递”的性质像“指针传递”,而书写方式像“值传递”。

    30520

    原 分分钟看懂java用引用传递传递

    栈存储几种类型的数据: 某些类型变量的值; 程序当前的执行环境; 传递给方法的参数。 栈有如下几个特征: 数据只能从栈的顶端插入和删除。 把数据放到栈顶称为入栈(push)。 栈不同,堆里的内存能够以任意顺序存入和删除。 堆是在运行期,根据程序运行情况动态分配内存空间。 3 值参数和引用参数(值传递和引用传递) 值参数:通过将实参的值复制到形参的方式把数据传递给方法。方法被调用时,系统在栈中为形参分配空间,然后将实参的值复制给形参。 3.3 引用类型数据作为值参数传递 写了两个例子,注意在方法内部形参p的不同之处! 总结 作为值参数(即值传递)时:传递的是栈中的数据。 作为引用参数(即引用传递时):传递的是栈本身的地址。

    34050

    面试再问值传递引用传递,把这篇文章砸给他!

    作者:zejian_ 来源:blog.csdn.net/javazejian/article/details/51192130 java的值传递和引用传递在面试中一般都会都被涉及到,今天我们就来聊聊这个问题 这里我们需要注意的是一个方法可以修改传递引用所对应的变量值,而不能修改传递值调用所对应的变量值,这句话相当重要,这是按值调用引用调用的根本区别,当然如果还不理解,没关系,下面就要图文并茂的彻底分析啦。 虽然到这里两个数据类型的传递都分析完了,也明白的基本数据类型的传递和引用数据类型的传递区别,前者将不会修改原数据的值,而后者将会修改引用所指向对象的值。 到这里估计不少人都蒙逼了,下面我们通过一个反例来说明(回忆一下开头我们所说明的按值调用按引用调用的根本区别)。 上面两种传递都进行了值拷贝的过程。 参考资料:java核心卷1

    23010

    传递引用传递区别——配套习题-形参与实参(理论解析)

    目录 值传递: 引用传递: 值传递引用传递示例: 形参: 实参: 形参与实参示例: 值传递引用传递区别-示例题: 答案解析: ---- 值传递: 在函数范围内,改变变量值的大小,都不会影响到函数外边的变量值 引用传递: 在函数范围内,对值的任何改变,在函数外部也有所体现,因为传引用传的是内存地址。 也就是说值传递传递数值,引用传递传递的是内存地址。 值传递引用传递示例: 形参: 形参全称为“形式参数”,目的是用来接收调用该函数时传递的参数。 实参: 实参,全称为"实际参数"。顾名思义就是实际存在的参数。 形参与实参示例: 从下图就可以很明显看出来形实的区别。 值传递引用传递区别-示例题: 函数f()、g()的定义如下所示。 ,那么就是正常的传递,形参x=1,传递到函数g当中,y=1+1;那么y=2正常传递回f函数,a=2,故而又最终(1)选项得a+x=2+1=3。

    9020

    颜色模型转换

    这三个变量分别表示是像素的亮度(Y)以及红色分量亮度的信号差值(U)和蓝色亮度的差值(V)。这种颜色模型主要用于视频和图像的传输,该模型的产生电视机的发展历程密切相关。 彩色电视机需要三个通道的数据才能显示彩色,而黑白电视机只需要一个通道的数据即可,因此为了使视频信号能够兼容彩色电视黑白电视,将RGB编码方式转变成YUV的编码方式,其Y通道是图像的亮度,黑白电视只需要使用该通道就可以显示黑白视频图像 RGB模型YUV模型之间的转换关系如式所示,其中RGB取值范围均为0-255。 ? 相比于RGB模型三个颜色分量最终颜色联系不直观的缺点,HSV模型更加符合人类感知颜色的方式:颜色、深浅以及亮暗。 ? 第三个第四个参数用于声明两个数据类型间的转换关系,具体转换形式如式所示。 ? 通过转换公式可以知道该转换方式就是将原有数据进行线性转换,并按照指定的数据类型输出。

    82531

    关注

    腾讯云开发者公众号
    10元无门槛代金券
    洞察腾讯核心技术
    剖析业界实践案例
    腾讯云开发者公众号二维码

    相关产品

    • NAT 网关

      NAT 网关

      NAT 网关是一种支持 IP 地址转换的网络云服务 ,它能够为腾讯云内的资源提供高性能的公网访问服务。通过 NAT 网关 ,在腾讯云上的资源可以安全访问公网 ,保护私有网络信息不直接暴露公网;您也可以通过 NAT 网关实现海量的公网访问 ,最大支持 1000 万以上的并发连接数……

    相关资讯

    热门标签

    活动推荐

    扫码关注腾讯云开发者

    领取腾讯云代金券