2
자바 바이트 코드로 클래스를 만들고 있습니다. 이 객체의 필드를 참조하는 방법을 알아야합니다. 먼저 TestClass
클래스에서 this.var1
에 액세스하는 것처럼 "this"객체를 참조하는 방법을 알아야합니다. 다른 객체의 필드에 액세스하는 방법은 알고 있지만 실행중인 동일한 객체는 참조하지 않습니다.자바 바이트 코드에서 "this"객체를 참조하는 방법
자바 바이트 코드로 클래스를 만들고 있습니다. 이 객체의 필드를 참조하는 방법을 알아야합니다. 먼저 TestClass
클래스에서 this.var1
에 액세스하는 것처럼 "this"객체를 참조하는 방법을 알아야합니다. 다른 객체의 필드에 액세스하는 방법은 알고 있지만 실행중인 동일한 객체는 참조하지 않습니다.자바 바이트 코드에서 "this"객체를 참조하는 방법
포인터는 숨겨진 첫 번째 매개 변수로 모든 메서드 호출에서 암시 적입니다. 모든 비 정적 메서드에서 aload_0
을 사용하여 스택에 밀어 넣을 수 있습니다.
More details here 또는 홀거 포인트가 in the JVM spec itself입니다.
그리고 공식적인 출처는 [JVM 사양] (http://docs.oracle.com/javase/specs/jvms/se7/html/jvms-3.html#jvms-3.6)입니다. "관례 상, 인스턴스 메소드가 로컬 변수 0에있는 인스턴스에 대한 참조를 전달합니다. " – Holger