java学习-参数传递

局部变量都存在于栈空间!
 方法的参数传递(重点,难点)
 形参:方法声明时小括号内的参数。
 实参:调用方法时,实际传入的参数的值。
 2.java中的参数传递遵循值传递机制
    1)形参是基本数据类型:将实参的值传递给形参的的基本数据类型变量
    2)形参是引用数据类型:将实参的引用类型变量的值(对应的堆空间的对象实体的首地址)传递给形参的引用类型变量
基础实例1:

 1 public class TestArgsTransfer {
 2     public static void main(String[] args){
 3         int i = 5;
 4         int j = 3;
 5         
 6         System.out.println("i:"+i+"\t"+"j:"+j);
 7         //交换两个数的值
 8 //        int temp = i;
 9 //        i = j;
10 //        j = temp;
11         TestArgsTransfer t  = new TestArgsTransfer();
12         t.swap(i,j);//将i的值传递给m,j的值传递给n;
13         
14         System.out.println("i:"+i+"\t"+"j:"+j);
15     }
16     public void swap(int m,int n){
17         int temp = m;
18         m = n;
19         n = temp;
20         System.out.println("i:"+m+"\t"+"j:"+n);
21     }
22 }

基础实例2:

 1 package exercise;
 2 
 3 public class TestArgsTransfer1 {
 4    public static void main(String args[]){
 5        TestArgsTransfer1 tt = new TestArgsTransfer1();
 6        DataSwap d = new DataSwap();
 7        System.out.println("ds.i:"+d.i+"\t"+"ds.j:"+d.j);
 8        tt.swap(d);
 9        System.out.println(d);
10        System.out.println("ds.i:"+d.i+"\t"+"ds.j:"+d.j);
11    }
12    public void swap(DataSwap ds){
13        int temp = ds.i;
14        ds.i =ds.j;
15        ds.j = temp;
16        System.out.println(ds);//打印引用变量d的值
17    }
18 }
19 class DataSwap{
20     int i = 5;
21     int j = 3;
22 }

实例3:

 1 package exercise;
 2 
 3 public class TestValue {
 4    public static void main(String[] args){
 5        TestValue t = new TestValue();
 6        t.first();
 7    }
 8    public void first(){
 9        int i = 5;
10        Value v = new Value();
11        v.i = 5;
12        second(v,i);
13        System.out.println(v.i);
14    }
15    public void second(Value v,int i){
16        i = 0;
17        v.i = 20;
18        Value val = new Value();
19        v = val;
20        System.out.println(v.i+"\t"+i);
21    }
22 }
23 class Value{
24     int i = 15;
25 }

实例3分析图:

                  栈                                 堆

posted @ 2014-11-14 21:05  Terminaling  阅读(220)  评论(0编辑  收藏  举报