java中值传递和引用传递
Posted 城管也会敲代码
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java中值传递和引用传递相关的知识,希望对你有一定的参考价值。
本来今天刚学习的内容,然后去其他博客看了下,发现都吵起来了,就是名字原因,有的说java有值传递和引用传递,有的说引用传递本质就是值传递,我管你杂说的,只要自己理解好,代码知道运行结果就好了。
我用自己的话,自己的理解来解释下,反正都是自己写着玩,自己看的
值传递:传递的值,这个值以后怎么改变,源值不会发生改变的。
引用传递:将对象的引用地址传递过去,如果值发生改变,那么源值也发生改变。
代码如下:
值传递:
public class Test1 {
public static void main(String[] args) {
int a=1;
fun(a);
System.out.println("main中的值"+a);
}
public static void fun(int a){
a=2;
System.out.println("fun中的值"+a);
}
}
console结果:
fun中的值2
main中的值1
引用传递:
class Demo1{
private String msg="hello";
public Demo1(String msg) {
this.msg = msg;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
}
public class Test2 {
public static void main(String[] args) {
Demo1 demo=new Demo1("world");
fun(demo);
System.out.println(demo.getMsg());
}
public static void fun(Demo1 demo){
demo.setMsg("hi");
}
}
console结果:hi
以上是关于java中值传递和引用传递的主要内容,如果未能解决你的问题,请参考以下文章