자바의 this는 정확히 뭘까요?
P
pinn (223.♡.84.128)
2025년 2월 21일 PM 06:06 · 수정됨(02. 24. 23:00)
조회 450 공감 0
오라클 도큐먼트에는 그냥 keyword라고만 나와 있습니다.
국내 블로그에는 각 인스턴스에 할당된 참조변수라고 하는 자료도 몇몇 있구요.
심지어 해외자료에는 스택에 존재하며 객체의 주소를 참조하는 역할이라는 자료도 있구요.
일단 런타임시 객체 자신의 참조는 맞지만, 정확한 메커니즘의 자료를 찾을 수 없네요.
혹시 JVM을 잘 아시는 분은 this의 정확한 메커니즘을 아실까요? 의견은 많은데 정확한 근거 자료를 찾을 수가 없네요.
댓글 (3)
-
분분노의다운힐
25.02.22 · 122.♡.248.27
C++의 this와 거의 비슷할 것으로 생각이 되는데요. 말씀하시는 this가 stack에 있느냐 아니냐 같은 부분은 언어의 영역이라기 보다는 C++로 치면 ABI의 영역처럼 보이는데.. Java에도 그런게 있나 모르겠네요. JVM 보다는 Java 컴파일러의 구현에 따라 다를 수 있을 것 같습니다. 혹시 있다면 Java의 function-call convention 관련 문서를 찾아보셔야 할 것 같습니다. -
Ppinn
→ 분노의다운힐 작성자
25.02.23 · 124.♡.157.15
아 네 JVM쪽 언급이 많아서 좀 찾아봤는데 아직 확실하게 언급된 부분을 못찼았습니다. 컴파일러마다 this 구현이 다르다는 자료도 종종 있더군요. 알려주신 관련 문서도 살펴보겠습니다. 답변 감사합니다. -
Aaicasse
25.02.24 · 183.♡.111.234
https://stackoverflow.com/questions/8926095/how-is-the-java-this-keyword-implemented
여기 비교적 잘 나와있는 것 같습니다.
댓글을 작성하려면 이 필요합니다.