Java方法参数传递方式
2017-08-01 10:11
267 查看
参考:Java核心技术I
程序设计语言中有关将参数传递给方法(这里就说2种):
1.call by value 值调用
2.call by reference 引用调用
1.值调用:表示方法接收的是调用者提供的值。
在java中,总是采用按值调用。
当传递的是基本类型,如int,double,float等时,方法得到的时所有参数值的一个拷贝。所以
在方法体内,无论怎么修改拷贝变量,都无法改变传递给它的任何参数变量的内容。
除了基本类型,还有另外一种参数就是对象了。但是,在java中同样时采用call by value(按值调用)。这里有许多人
都存在误解,认为是call by reference。
引用调用强调的是调用者给方法提供变量的地址,而在java中其实不是。当在方法中传递一个对象时,调用者会将
对象参数(对象变量名,是对对象的引用)拷贝一份(这里拷贝的是一份新的对象引用,而不是新的对象),再将
该拷贝引用传递给方法。这里与call by referencce的主要区别就是,call by reference强调的是传递变量的地址(
也就是对象变量的地址),而再java中实际传递的却不是这个地址,而是引用的拷贝。所以说这种传值也是call by value。
举例说明:
1.call by value:
int x=1;
int y=2;
chang(x,y);
输出x:1 y:2
无论再chang中怎么改,对外面的x,y都没影响。
如果是引用调用,那么再chang(x,y)的参数里,传递的是地址,所以再chang里的任何修改,将直接影响外面的x,y
(值调用就是以上这个意思)把这个例子里的基本类型换成对象,同样有效。唯一的区别是,通过调用引用的对象里的
方法可以修改这个对象里的值,这样就影响了外部的x,y了。因为传递对象时,传递的时引用拷贝,而不是真正拷贝另外
一个对象。实参和形参都访问同一个对象(在内存中)。
2.引用调用:接收的是调用者提供的变量地址。
(可以参考百度)
程序设计语言中有关将参数传递给方法(这里就说2种):
1.call by value 值调用
2.call by reference 引用调用
1.值调用:表示方法接收的是调用者提供的值。
在java中,总是采用按值调用。
当传递的是基本类型,如int,double,float等时,方法得到的时所有参数值的一个拷贝。所以
在方法体内,无论怎么修改拷贝变量,都无法改变传递给它的任何参数变量的内容。
除了基本类型,还有另外一种参数就是对象了。但是,在java中同样时采用call by value(按值调用)。这里有许多人
都存在误解,认为是call by reference。
引用调用强调的是调用者给方法提供变量的地址,而在java中其实不是。当在方法中传递一个对象时,调用者会将
对象参数(对象变量名,是对对象的引用)拷贝一份(这里拷贝的是一份新的对象引用,而不是新的对象),再将
该拷贝引用传递给方法。这里与call by referencce的主要区别就是,call by reference强调的是传递变量的地址(
也就是对象变量的地址),而再java中实际传递的却不是这个地址,而是引用的拷贝。所以说这种传值也是call by value。
举例说明:
1.call by value:
int x=1;
int y=2;
chang(x,y);
输出x:1 y:2
无论再chang中怎么改,对外面的x,y都没影响。
如果是引用调用,那么再chang(x,y)的参数里,传递的是地址,所以再chang里的任何修改,将直接影响外面的x,y
(值调用就是以上这个意思)把这个例子里的基本类型换成对象,同样有效。唯一的区别是,通过调用引用的对象里的
方法可以修改这个对象里的值,这样就影响了外部的x,y了。因为传递对象时,传递的时引用拷贝,而不是真正拷贝另外
一个对象。实参和形参都访问同一个对象(在内存中)。
2.引用调用:接收的是调用者提供的变量地址。
(可以参考百度)
相关文章推荐
- Java方法参数传递方式总结
- 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式。
- java方法调用中参数传递的方式
- Java方法中的参数传递方式
- Java 方法参数传递方式
- Java方法参数的传递方式
- 关于JAVA方法参数传递方式
- 详解java中给方法传递参数的两种方式:按值传递,引用传递
- 关于"Java中方法参数的传递方式"的探讨
- Java方法的参数传递方式为: 值传递
- java方法参数传递方式--按值传递、引用传递
- 【转】java方法参数传递方式--按值传递、引用传递
- java程序设计语言将参数传递方法的方式
- java方法参数传递方式
- Java学习(八)方法参数传递方式
- 终极解释: java方法传递参数的方式
- 新手容易混乱的String+和StringBuffer,以及Java的方法参数传递方式
- 《Java中方法的参数传递方式只有一种:值传递》
- Java中的方法参数传递方式
- Java 方法中参数的传递方式