【Thinking In Java】Java参数传递探究,
分享于 点击 13851 次 点评:199
【Thinking In Java】Java参数传递探究,
想到写这一篇博客,还是从自己在编程中遇到的一个困扰说起。
先看下面的代码
输出结果:
================================================================================================
所以,JAVA的参数传递需要分为基本类型参数传递和对象类型的参数传递。
1. 当参数为基本类型时,JAVA是按按值传递的方式处理(比如:int)。比较简单,不多说。
2. 当参数是一个对象时, JAVA传递的是对象的引用。
static void ChangeData(Test t){
t.a = 3;
t.b = 4;
}
static void ChangeData2(Test t){
t = new Test(3,4);
}
但是,在ChangeData2中,我们用到了t = new Test(3,4)。执行这一句时,相当于在函数中,我们将t的内存地址指向一个全新的对象Test[3,4]。因此,实参和形参实际上已经指向不同的内存地址。
(图中,@a 、@b表示某个内存地址。)
这种情形,和我们操作String对象时是一样的道理。
因为在JAVA中,
当我们执行s = "world"时,实际上等同于执行s = new String(“world")。这样,就很好的理解了例子中String不变的情况!!
相关文章
- 暂无相关文章
用户点评