方法参数的值传递机制

package inheritance.exercise;
/*
关于变量的赋值:
    如果变量是基本数据类型,那么赋值的是变量保存的数据值
    如果变量是引用数据类型(对象或数组),那么赋值的是变量所保存的数据的地址值

 */
public class ValueTransferTest {
    public static void main(String[] args) {
        System.out.println("************基本数据类型******************");
        int m = 10;
        int n = m;
        System.out.println("m = "+m+";n = "+n);//m = 10,n = 10
        n = 20;
        System.out.println("m = "+m+";n = "+n);//m = 10,n = 20

        System.out.println("************引用数据类型*********************");
        //java中,引用类型的值只有两种,不是null就是地址值
        Order o1 = new Order();//o1指向的是创建的这个对象的地址值
        o1.orderId = 1001;
        Order o2 = o1;//把变量o1中存储的地址值赋值给o2,之后o1和o2的地址值相同,都指向了堆空间中同一个对象实体
        System.out.println("o1.orderId = "+o1.orderId+";o2.orderId = "+o2.orderId);//01 = 1001,o2 = 1001
        o2.orderId = 1002;
        System.out.println("o1.orderId = "+o1.orderId+";o2.orderId = "+o2.orderId);//01 = 1002,o2 = 1002
    }
}
class Order{
    int orderId;
}

 

posted @ 2021-05-13 14:22  橘猫的夏天  阅读(44)  评论(0编辑  收藏  举报