再次学习java语言中值传递和引用传递

本文探讨了Java中值传递与引用传递的概念及其区别。通过具体例子解释了这两种传递方式的特点,并介绍了它们如何影响程序中的数据操作。

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

上个月做了一个房型筛选的功能,里面牵扯到了数据的克隆操作,说道克隆操作,大家都很熟悉,数据为什么要克隆,简单说主要是为了操作现有数据而不影响之前的数据,那么,就必然牵扯到java的引用传递。今天我们并不去讲怎么克隆对象,主要是再走一边大学里面我们经常听到的两个概念 “引用传递”和“值传递”。
查阅资料发现有人说java只有值传递,这个不同的角度不同的看法,我们今天也不讨论,只是按照最初的认知来了解值传递和引用传递。
(这篇文章可能错误点很多,如果有大师路过,恳请留下墨宝改正一下文章里的错误,互相交流一下)

概念

  • 值传递
    值传递指的是在方法调用时,传递的参数是按值的拷贝传递,值传递有一个重要的特点传递的是值的拷贝,也就是说传递后就互不相关了。我们经常在计算机二级考试或者笔试题中看到这样类似的考题传参进去,进行逻辑操作后,输出两个值。。。如果弄不清值传递和引用传递,很容易造成输出的结果大跌眼镜,本来觉得该改的没有改,本来觉得这个值不该变化,却意外变了。。。。

  • 引用传递
    引用传递指的是在方法调用时,传递的参数是按引用进行传递,其实传递的引用的地址,也就是变量所对应的内存空间的地址。至于考题,和上面一样

两者区别和”赋值”这回事

至于区别,很多人都会说值传递是一个值变了,另一个值不变,引用处拿地是一个值变了,也会导致另一个值改变,但是很多人又说不清楚到底为什么这样。虽然说java里面并没有指针这个概念,但是我觉得要想准确的理解引用传递,这个指针我们还是要理解一下的。
首先,我们要认识一下变量的概念。天天用变量,却没有认真想过变量到底是啥。也怪大学课本讲的不细致,老师也是一带而过,只是说要用字符串就定义一个字符串变量,整数就定义一个int变量。事实上,java变量是一块内存空间,记住,是一块内存空间,我们不可能记住他的真实名字,比如 @123456 啥的,所以给他起了个名字叫xx而已。定义变量的原因就是,我们要去申请一块内存空间去存放我们需要的值。这一点和C语言里变量的定义不谋而合,

我们继续看看以下的C、C++语言变量申明:
int I
char a;
每次我们要使用某变量时都要事先这样申明它,它其实是内存中申请了一个名为i的整型变量宽 度的空间(DOS下的16位编程中其宽度为二个字节),和一个名为a的字符型变量宽度的空间(占一个字 节)
引用自 http://blog.chinaunix.net/uid-22889411-id-59688.html

而正好,这个变量,也就是我们起的名字,指向了存储这个值的首地址。

未完待续。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值