값 또는 참조로 전달되는 Java
1.
public void badSwap(int var1, int var2) { int temp = var1; var1 = var2; var2 = temp; }
를 전달하는 원본 유형 매개변수
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는 '참조로' 객체를 조작하지만 객체 참조를 '값으로' 메소드에 전달합니다.
java 콜백 메커니즘
spring은 Java 콜백 메커니즘을 광범위하게 사용합니다. , 다음은 Java 콜백 메커니즘에 대한 간략한 소개입니다.
콜백은 한마디로 양방향 호출 모드입니다. 즉, 호출 수신자가 상대방에게도 전화를 걸다는 의미입니다. 이것을 콜백이라고 합니다. "전화주시면 다시 전화드리겠습니다."
콜백 메커니즘에 대한 다음 예를 살펴보세요.
Interface CallBackInterface:
public interface CallBackInterface { void save(); }
Class 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:
public class ClassA { public void executeSave(CallBackInterface callBackInterface) { getConn(); callBackInterface.save(); //you call me realse(); } public void getConn() { System.out.println("获取数据库连接!"); } public void realse() { System.out.println("释放数据库连接!"); } }
여기서 콜백 함수 사용(Java 익명 클래스 사용)의 보다 전형적인 예에서는 소스 코드가 생략되었습니다.
추가 지침 Java 전달 및 콜백 메커니즘의 코드 예제를 공유하는 관련 기사를 보려면 PHP 중국어 웹사이트에 주목하세요!