Java中参数的两种传递方式

Java中有两种传递方式,即引用传递和值传递。
1.值传递:
    传递的栈内存值,开辟新的内存空间来储存。
    public static void main(String[] args){ 
    int a = 1; 
    int b = 1; 
    static fun(a,b); 
    System.out.println("a:"+a); 
    System.out.println("b:"+b); 
    } 
 
    public static void fun(int a,int b){ 
    a = 0; 
    b = 0; 
    }
    a,b传递过去后开辟新的内存空间进行储存,改变里面的a,b并不会影响外面的,所以运行结果为:  a:1 b:1
 
2.引用传递:
    传递的是储存数值的栈中的地址。
    public static void main(String[] args){
      Student st1=new Student();
      st1.setName("xiao wang");
      Student st2=new Student();
      st1.setName("xiao hong ");
      Student st3=new Student();
      st1.setName("xiao li");
      st1=st2;
      st2=st3;
      st3=st1;
   }
   把st2的地址赋给st1,把st3的地址赋给st2,把st1的地址赋给st3,这样st3的名字就是xiaohong,st2是xiaoli,st1是xiaohong。

猜你喜欢

转载自xmy564470466.iteye.com/blog/2208573