码迷,mamicode.com
首页 > 编程语言 > 详细

Java中的方法参数传递方式

时间:2014-12-10 00:23:54      阅读:218      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   color   os   sp   java   数据   div   

最近在系统学习Core Java,Java中的数据类型分为两种,第一种是基本数据类型(数字型和布尔型),第二种是类类型(即对象),起初,我以为第一种类型的参数是按值传递,第二种是按引用传递,但在学习Core Java的过程中,我发现这是错误的,先抛出最终结论:在Java中,所有的方法参数都是按值传递的!!!下面来进行解释。

第一种类型的参数是按值调用很好理解,主要是要说明第二种类型的参数也是按值调用的,看下面的一段程序:

1 public static void swap(A x, A y)
2 {
3   A temp = x;
4   x = y;
5   y = temp;        
6 }

如果是按引用传递,那么这个方法就应该能够实现数据交换(a引用Rose,b引用Jack):

A a = new A("Jack");
A b = new A("Rose");
swap(a, b);

但实际上,swap方法并没有改变a和b的引用,swap参数的x和y初始化为a和b的引用拷贝,这个方法交换的是x和y的引用,最终,白费力气,方法结束的时候x和y被丢弃了,a和b仍然引用之前引用的对象。如下图所示:

bubuko.com,布布扣

这个过程说明:Java中,对对象采用的不是按引用传递,实际上,对象引用进行的是值传递。

Java中的方法参数传递方式

标签:style   blog   http   color   os   sp   java   数据   div   

原文地址:http://www.cnblogs.com/laihaiteng/p/4154415.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!