引用传递
引用传递:
”引用”也就是指向真实内容的地址值,在方法调用时,
实参的地址通过方法调用被传递给相应的形参,在方法体内,
形参和实参指向真实内容的地址值,对形参的操作会改变真实对象内容。
对于引用数据类型的对象/数组,变量名存在栈中,变量值存储的是对象的地址,
并不是对象的实际内容。
public static void main(String[] args) {
MktMessagePO mktMessagePO = new MktMessagePO();
mktMessagePO.setMktMsgId(1L);
MktMessagePO mktMessagePO1 = method01(mktMessagePO);
System.out.println(JSON.toJSONString(mktMessagePO1));
MktMessagePO mktMessagePO2 = method02(mktMessagePO);
System.out.println(JSON.toJSONString(mktMessagePO2));
System.out.println("-----------------------------------------");
System.out.println(JSON.toJSONString(mktMessagePO1));
System.out.println(JSON.toJSONString(mktMessagePO2));
System.out.println(JSON.toJSONString(mktMessagePO));
}
public static MktMessagePO method01(MktMessagePO mktMessagePO){
MktMessagePO mktMessagePO2 =mktMessagePO;
mktMessagePO2.setMktMsgId(2L);
return mktMessagePO2;
}
public static MktMessagePO method02(MktMessagePO mktMessagePO){
mktMessagePO.setMktMsgId(3L);
return mktMessagePO;
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/2019110715200236.png)
值传递
值传递:
在方法被调用时,实参通过形参把它的内容副本传入方法内部,此时形参接收到的内容是
实参值的一个拷贝,因此在方法内对形参的任何操作,都仅仅是对这个副本的操作,不影
响原始值的内容。
值传递传递的是真实内容的一个副本,对副本的操作不影响原内容,也就是形参怎么变
化,不会影响实参对应的内容。