자바의 this는 정확히 뭘까요?
pinn

Lv.1 pinn (223.♡.84.128)

2025년 2월 21일 PM 06:06 · 수정됨(02. 24. 23:00)

조회 450 공감 0

오라클 도큐먼트에는 그냥 keyword라고만 나와 있습니다. 

국내 블로그에는 각 인스턴스에 할당된 참조변수라고 하는 자료도 몇몇 있구요.

심지어 해외자료에는 스택에 존재하며 객체의 주소를 참조하는 역할이라는 자료도 있구요. 


일단 런타임시 객체 자신의 참조는 맞지만, 정확한 메커니즘의 자료를 찾을 수 없네요. 


혹시 JVM을 잘 아시는 분은 this의 정확한 메커니즘을 아실까요? 의견은 많은데 정확한 근거 자료를 찾을 수가 없네요. 

댓글 (3)

  • 분노의다운힐

    분노의다운힐 Lv.1

    25.02.22 · 122.♡.248.27

    C++의 this와 거의 비슷할 것으로 생각이 되는데요. 말씀하시는 this가 stack에 있느냐 아니냐 같은 부분은 언어의 영역이라기 보다는 C++로 치면 ABI의 영역처럼 보이는데.. Java에도 그런게 있나 모르겠네요. JVM 보다는 Java 컴파일러의 구현에 따라 다를 수 있을 것 같습니다. 혹시 있다면 Java의 function-call convention 관련 문서를 찾아보셔야 할 것 같습니다.
  • pinn

    pinn Lv.1 → 분노의다운힐 작성자

    25.02.23 · 124.♡.157.15

    아 네 JVM쪽 언급이 많아서 좀 찾아봤는데 아직 확실하게 언급된 부분을 못찼았습니다. 컴파일러마다 this 구현이 다르다는 자료도 종종 있더군요. 알려주신 관련 문서도 살펴보겠습니다. 답변 감사합니다.
  • aicasse

    aicasse Lv.1

    25.02.24 · 183.♡.111.234

댓글을 작성하려면 이 필요합니다.