2013-11-20 8 views
2

자바 바이트 코드로 클래스를 만들고 있습니다. 이 객체의 필드를 참조하는 방법을 알아야합니다. 먼저 TestClass 클래스에서 this.var1에 액세스하는 것처럼 "this"객체를 참조하는 방법을 알아야합니다. 다른 객체의 필드에 액세스하는 방법은 알고 있지만 실행중인 동일한 객체는 참조하지 않습니다.자바 바이트 코드에서 "this"객체를 참조하는 방법

답변

5

포인터는 숨겨진 첫 번째 매개 변수로 모든 메서드 호출에서 암시 적입니다. 모든 비 정적 메서드에서 aload_0을 사용하여 스택에 밀어 넣을 수 있습니다.

More details here 또는 홀거 포인트가 in the JVM spec itself입니다.

+0

그리고 공식적인 출처는 [JVM 사양] (http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-3.html#jvms-3.6)입니다. "관례 상, 인스턴스 메소드가 로컬 변수 0에있는 인스턴스에 대한 참조를 전달합니다. " – Holger

관련 문제