一、概述java
1.1 值傳遞:傳遞的是值的拷貝;引用傳遞:傳遞的是引用的地址值;(Java中統稱爲值傳遞)spring
1.2 java中只有 基本數據類型、String s="aa";這2種形式是值傳遞,其餘都爲引用傳遞;數組
二、案例spa
package com.exiuge.mytest; /** * 值傳遞 基本數據類型 */ public class Test { public static void main(String[] args){ int i=3,j=4; change(i,j); System.out.println(i+":"+j); } public static void change(int i,int j){ int temp=0; temp=i; i=j; j=temp; System.out.println("change:"+i+":"+j); } }
執行結果:code
package com.exiuge.mytest; import com.exiuge.mytest.springioc.User; /** * 值傳遞 String s="a"; */ public class Test { public static void main(String[] args){ String s="aa"; change(s); System.out.println(s); } public static void change(String s){ s="bb"; } }
執行結果:blog
package com.exiuge.mytest; /** * 引用傳遞 數組 */ public class Test { public static void main(String[] args){ int[] arr=new int[]{1,2,3,4,5}; change(arr); System.out.println(arr[0]); } public static void change(int[] arr){ arr[0]=12; } }
執行結果:get
12io
package com.exiuge.mytest; import com.exiuge.mytest.springioc.User; /** * 引用傳遞 自定義數據類型 */ public class Test { public static void main(String[] args){ User user=new User(12,"a"); change(user); System.out.println(user.getAge()); } public static void change(User user){ user.setAge(15); } }
執行結果:class
15test