public class Test2{
public static void print(Object a,Object b){
System.out.println(a.toString()+b.toString());
}
public static void swap(String a,String b){
String temp=a;
a=b;
b=temp;
System.out.println(a);
System.out.println(b);
}
public static void swap(Object[] object){
Object temp=object[0];
object[0]=object[1];
object[1]=temp;
System.out.println(object[0]);
System.out.println(object[1]);
}
public static void main(String[] args) {
String a = "A";
String b = "B";
Integer c = Integer.valueOf(0);
/**
* parseInt()
* valueOf()
*/
swap(a,b);
print(a,b);
Object[] objects=new Object[]{b,c};
swap(objects);
print(objects[0],objects[1]);
}
}
- 值傳遞 : 傳遞的是值得拷貝(副本), 傳遞之後就互不干擾了.(對於基本數據類型)
-
結果:test方法中的i的值爲:5public class Test4 { /** * @param args * 值傳遞和引用傳遞 */ private static void testValues(int i){ i = 5; System.out.println("testValues方法中的i的值爲:"+i); } public static void main(String[] args) { // TODO Auto-generated method stub int i = 10; Test4.testValues(i); System.out.println("main方法中i的值爲:"+i); } }
main方法中i的值爲:10 - 引用傳遞 : 傳遞是變量所對應的內存空間的地址
-
結果: test1方法中的age=20public class Test5 { private void test1(A a){ a.age = 20; System.out.println("test1方法中的age="+a.age); } public static void main(String[] args) { Test5 t = new Test5(); A a = new A(); a.age = 10; t.test1(a); System.out.println("main方法中的age="+a.age);} } class A{ public int age = 0; }
main方法中的age=20