java值传递
一.声明
Java中没有引用传递
二.值传递和引用传递
值传递:就是在方法调用的时候,实参是将自己的一份拷贝赋给形参,在方法内,对该参数值的修改不影响原来的实参。
引用传递:是在方法调用的时候,实参将自己的地址传递给形参,此时方法内对该参数值的改变,就是对该实参的实际操作。
三.示例
private static Integer baseValue= 30; public static void updateBaseValue(Integer baseValue){ baseValue = 2 * baseValue; } public static void main(String[] args) { System.out.println("调用前baseValue的值:"+baseValue); updateBaseValue(baseValue); System.out.println("调用后baseValue的值:"+baseValue); }
调用前和调用后 baseValue的值都为30
public static void main(String[] args) { SysUser user1 = new SysUser(); user1.setUsername("zhangsan"); user1.setAuthType(1); System.out.println("赋值前user1:" + user1.getUsername() + "-》 user1:" + user1.getAuthType()); swap(user1); System.out.println("赋值后user1:" + user1.getUsername() + "-》 user1:" + user1.getAuthType()); } private static void swap(SysUser user1) { user1.setUsername("lisi"); user1.setAuthType(2); }
赋值前为zhangsan 赋值后为李四
不可变对象传递 为标准的值传递。 可变对象传递既传递值也传递地址 所以会改变原来的对象属性值
当能力支撑不了野心时,就该静下心来学习!