TA贡献1876条经验 获得超6个赞
值传递应该是拷贝了一个副本,引用传递是将变量直接指向内存中的地址,这个地址中的值变了的话,所有指向它的变量值都变了。比如变量a的值是123456,在内存中的地址是0xxxx,将a引用传值给b,那么b也指向0xxxx,即使修改b的值,也就是修改了该地址中的值,a的值也会改变。但是直接赋值的话他们在内存中的地址就不同了,互不相干。
TA贡献1829条经验 获得超7个赞
许多面向对象编程语言里,都会存在值传递或者引用传递概念。
值传递一般是基本类型的变量,引用传递一般是对象等复杂类型的变量。这两种变量的存储位置是不一样的。基类型存储于栈内存中,复杂类型存储于堆内存中。
出于性能的考虑,如果将一个基本类型的变量赋值给另外一个变量,只是单纯的内存复制。如果是复杂变量,会牵扯到许多东西,复制的效率比较低。所以只能引用传递,也就是地址传递。
说个比喻:如果你需要一块砖,我可以马上拿给你;如果说你需要一座山,我只能告诉你山在那边。
TA贡献1859条经验 获得超6个赞
知足吧少年。到了C和C++里面就是让你操纵指针了。我的意思是你可以参考一下C系语言里的指针。
大厂算法面试真题解析32讲
¥ 68.00
32 堂微服务架构设计与落地精讲课
¥ 78.00
Java 并发编程深度解析
¥ 58.00
网络编程之Netty一站式精讲
再学经典:《Effective Java》独家解析
举报
购课补贴联系客服咨询优惠详情
慕课网APP您的移动学习伙伴
扫描二维码关注慕课网微信公众号