关于java中的值传递与引用传递

结论:

1. 对于值传递,如int, long等基本类型,不管传入方法后怎么修改,都改变不了方法外面的值。

2. 对于引用传递,如果传入方法后指向了一个新的对象,那么无论怎么修改也改变不了方法外面的对象。

    如果传入方法后没有指向新对象,直接操作,就会改变方法外面的对象,因为这是在操作同一个对象。


结论下完直接上干货代码:

public class DeliveryTest {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public static void changeInt(int num){
        num = 20;
    }
    public static void changeString(String string){
        string = "string";
    }
    public static void changeNewString(String string){
        string = new String("bbb");

    }
    public static void changeObject(DeliveryTest object){
        object.setName("lisi");

    }
    public static void changeNewObject(DeliveryTest object){
        object = new DeliveryTest();
        object.setName("lisi");

    }

    public static void main(String[] args) {

        int num = 10;
        System.out.println(num);
        DeliveryTest.changeInt(num);
        System.out.println(num);
        System.out.println("===============================");

        String str = "str";
        System.out.println(str);
        DeliveryTest.changeString(str);
        System.out.println(str);
        System.out.println("===============================");

        String string = "aaa";
        System.out.println(string);
        DeliveryTest.changeNewString(string);
        System.out.println(string);
        System.out.println("===============================");

        DeliveryTest deliveryTest = new DeliveryTest();
        deliveryTest.setName("zhangsan");
        System.out.println(deliveryTest.getName());
        DeliveryTest.changeObject(deliveryTest);
        System.out.println(deliveryTest.getName());
        System.out.println("===============================");

        DeliveryTest dt = new DeliveryTest();
        deliveryTest.setName("zhangsan");
        System.out.println(deliveryTest.getName());
        DeliveryTest.changeNewObject(dt);
        System.out.println(deliveryTest.getName());
        

    }
}

执行完结果:


猜你喜欢

转载自blog.csdn.net/qq_35673617/article/details/80757187