Java的参数传递的唯一方式:传值(By Value)(csdn)
来源:互联网 发布:淘宝网店访问量有用吗 编辑:程序博客网 时间:2024/06/06 09:55
之所以把这个问题拿出来重新分析一次,是因为我们操作Java的对象(Object)全是通过对象的引用(Object references),引用可以理解为指针,容易让人对应到C++的传址上面去。讨论讨论有百益而无一害嘛。
在传基本数据类型 变量时,直接传值不会让人费解;但当传递对象时,就应该理解为传递的是对象引用的值,但这个值并不是对象本身,而是指向该对象,即你让另一个引用指向了该对象。
--Java以By Value的方式传递Object reference。
以下面简单程序为例:
package test;
public class BlogTest
{
public void modifyAAA(int x, java.util.ArrayList list)
{
x += 5;
System.out.println("x=====" + x);
list.add(new java.util.Date());
System.out.println(list.size());
}
public static void main(String[] args)
{
BlogTest blogtest = new BlogTest();
int i = 5;
java.util.ArrayList list = new java.util.ArrayList();
System.out.println("i=======" + i);
System.out.println("list.size()==="+list.size());
blogtest.modifyAAA(i, list);
System.out.println("i==new==" + i);
System.out.println("list.size()====" + list.size());
}
}
/*
运行得到的结果是这样的
i=======5
list.size()===0
x=====10
1
i==new==5
list.size()==new==1
*/
这说明在参数传递过程中发生了以下事情:int 变量 i 被复制了一份给 int x,在modifyAAA()方法中改变了x的值并不会影响主函数中i的值,当然,这是变量生存区间不同,很好理解。但发现list对象的引用传到modifyAAA()方法的前后,主函数中的list也跟着发生了变化。这正说了在传递对象引用时,形参得到了实参对象的引用拷贝,两个引用都指向了同一list对象,所以形参改变了list同时也能反映到实参中来。
- Java的参数传递的唯一方式:传值(By Value)(csdn)
- Java中参数以by value方式而非by reference 方式传递(值传递)
- 【Practical Java】实践1:参数以by value方式而非by reference方式传递
- Java中方法调用参数传递的方式是传值,尽管传的是引用的值而不是对象的值。(Does Java pass by reference or pass by value?)
- Java的参数传值方式by value而不是by reference
- perl中子程序中参数的两种引用(传递)方式:pass by value and pass by Reference(传入引用)
- Java参数传递的方式
- Java参数传递的方式
- java参数的传递方式
- java参数传递的方式
- java中参数传递详解:call by value(按值传递)和 call by reference(按引用传递)
- 参数以by value方式而非by reference方式传递
- java的参数传递方式是传值的
- java中参数传递的方式
- java 传递参数的两种方式
- java中参数的传递方式
- java 传递参数的两种方式
- java 传递参数的两种方式
- Tip: Javadoc as XML
- 虚拟内存管理
- 收藏几段SQL Server语句和存储过程(csdn)
- oracle中实现主键的自动增加(csdn)
- FDISK的使用方法
- Java的参数传递的唯一方式:传值(By Value)(csdn)
- 操作系统入门(一)痛并学习中
- 操作系统入门(二)痛并学习中
- http://www.cs.rit.edu/~ncs/color/t_convert.html
- 专家称健身不宜搞突击 突击锻炼反而伤身
- MACROMEDIA 以 BREEZE 5 软件进一步强化网页沟通能力
- 九大因素引起乳腺癌发病高危
- 嵌入式系统、嵌入式linux系统以及如何构造一个嵌入式系统概览(转)
- ASP中的循环判断