java傳值還是傳引用
1.原始型別參數傳遞
public void badSwap(int var1, int var2) { int temp = var1; var1 = var2; var2 = temp; }
2.引用類型參數傳遞
public void tricky(Point arg1, Point arg2) { arg1.x = 100; arg1.y = 100; Point temp = arg1; arg1 = arg2; arg2 = temp; } public static void main(String [] args) { Point pnt1 = new Point(0,0); Point pnt2 = new Point(0,0); System.out.println("X: " + pnt1.x + " Y: " +pnt1.y); System.out.println("X: " + pnt2.x + " Y: " +pnt2.y); System.out.println(" "); tricky(pnt1,pnt2); System.out.println("X: " + pnt1.x + " Y:" + pnt1.y); System.out.println("X: " + pnt2.x + " Y: " +pnt2.y); }
運行這兩個程序,相信你會明白的:Java manipulates objects ' but it passes object references to methods 'by value.
java回呼機制
spring大量使用了java回呼機制,下面對Java回呼機製作一些簡單的介紹:
一句話,回調是一種雙向調用模式,什麼意思呢,就是說,被呼叫方在被呼叫時也會呼叫對方,這就叫回調。 「If you call me, i will call back」。
看下面關於回呼機制的例子:
介面CallBackInterface :
public interface CallBackInterface { void save(); }
類ClassB:
public class ClassB implements CallBackInterface { public void save() { System.out.println("执行保存操作!"); } // public void add() { //这里调用ClassA的方法 同时ClasssB又会回调ClassB的save方法 new ClassA().executeSave(new ClassB()); } }
類ClassA:o
類的類別)這裡省去了原始碼更多說明Java的傳遞與回呼機制的程式碼範例分享相關文章請關注PHP中文網!