函数参数的传递分为两种:“值传递”和“引用传递”.
“值传递”—传递原参数的拷贝,
基本数据类型参数,都是值传递;函数内部修改此参数,则原数据不变.
“引用传递”—传递原参数本身,
对象参数,则为引用传递(这个是引用地址的拷贝);函数内部修改此参数,则原对象更改.
注意:JAVA中函数参数的传递为值传递。参数为对象时,传递的是原参数引用的拷贝,这个引用的拷贝同样会指向原对象。因此,在函数中对对象参数的修改,能够体现到原对象。
所以从java对传递参数做副本拷贝的角度来讲:java的传递都是值传递!
Java
编程语言只有值传递参数.
当一个对象实例作为一个参数被传递到方法中时,参数的值就是对该对象的引用.对象的内容可以在被调用的方法中改变,但对象的引用是永远不会改变的.
看下面示例:
package myPage;
public class ChangeTest {
public static void main(String[] args){
String abc = "before";
change(abc);
System.out.println(abc);
}
public static void change(String string){
string = "after change";
}
}
将abc串经change方法修改后打印出来仍然是原来的"before"值,因为对象的传递是指向对象的地址的拷贝,那么,对这个新拷贝的地址再赋值是不会影响到原来的地址的内容。再加上String和Integer等这些都属于final类型,所以它们的值是不可以改变的。
再看下面示例:
package myPage;
public class ChangeTest {
private String abc;
public String getAbc() {
return abc;
}
public void setAbc(String abc) {
this.abc = abc;
}
public static void change(ChangeTest changeTest , String info){
changeTest.setAbc(info);
}
public static void main(String[] args){
ChangeTest test = new ChangeTest();
test.setAbc("before");
change(test, "after change");
System.out.println(test.getAbc());
}
}
第二个例子,我们是将changeTest引用对象交给change方法,而在change方法里会获得一个changeTest引用的拷贝,在change方法里对changeTest引用所指向的对象进行操作,所以changeTest的所指向的对象值会改变。
分享到:
相关推荐
java 值传递和引用传递的比较区别,包括代码及详解
Java:按值传递还是按引用传递详细解说
本人经过长时间收集的最经典、最有说服力、最易懂的关于值传递和引用传递的详解资料~包看包会~发出去真有些不舍得~
主要介绍了 Java 值传递和引用传递详解及实例代码的相关资料,需要的朋友可以参考下
不管是按值传递还是按引用传递,都是把栈中的数据备份了一份给参数变量,只不过值类型备份的是具体的数值,而引用类型备份的是内存地址
Java面向对象值传递和引用传递Java面向对象值传递和引用传递Java面向对象值传递和引用传递Java面向对象值传递和引用传递
主要为大家详细介绍了Java值传递和引用传递,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递.zip13.java参数传递之引用传递....
java学习java语言的值传递和引用传递
这个在Java里面是经常被提起的问题,也有一些争论,似乎最后还有一个所谓的结论...事实上,这很容易让人迷惑,下面先分别看看什么是按值传递,什么是按引用传递,只要能正确理解,至于称作按什么传递就不是个大问题了。
java 中没有引用传递,都是值传递的,可以通过传递副本修改对象的,副本交换,并不影响原引用
主要介绍了Java中值传递和引用传递的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
当一个变量为一个参数传入方法内部的时候,会有两种不同的传递方式:值传递和引用传递。 值传递的特点:不管方法内部对传进去的参数作任何改变,也不会影响方法外部的变量的值 引用传递的特点:方法内部对传...
Java中的值传递和引用传递的区别.doc
Java语言中参数值传递和引用传递比较
Java的按值传递和按引用传递分析 Java的按值传递和按引用传递分析.pdf
java中的值传递和引用传递[汇编].pdf
java参数传递时到底是值传递还是引用传递分享.pdf
Java的按值传递和按引用传递分析.rar
java参数传递时到底是值传递还是引用传递[归类].pdf