1 2 3 4

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  赋值后为李四

不可变对象传递 为标准的值传递。     可变对象传递既传递值也传递地址  所以会改变原来的对象属性值

posted @ 2023-02-18 16:38  一缕清风丶  阅读(41)  评论(0编辑  收藏  举报