import java.util.Arrays; /** * @author kevin * @date 2019/7/10 9:46 */ public class Exam4 { public static void main(String[] args) { int i= 1; String str = "hello"; int[] arr = {1,2,3,4,5}; MyData my = new MyData(); change(i,str,arr,my); System.out.println("i=" +i ); System.out.println("str=" + str); System.out.println("arr="+ Arrays.toString(arr)); System.out.println("my.a="+my.a); } public static void change(int i,String str,int[] arr,MyData my){ i +=1; str += "world"; arr[0] += 1; my.a +=1; } } class MyData{ int a = 10; }
運行結果java
i=1 str=hello num=2 arr=[2, 2, 3, 4, 5] my.a=11
首先,不要糾結於Pass By Value 和 Pass By Reference
的字面上的意義,不然很容易陷入所謂的「一切傳引用其實本質上是傳值」這種並不能解決問題無心義論戰中。code
下面畫了一張圖更利於解釋
對象
玩的開心!blog