티스토리 뷰

기술이야기

[JVM Internal] namespace

novathinker 2008.02.25 11:19

Class loader는 각각 자신만의 namespace가 있다. 이렇게 Type의 이름은 Instance level에서 unique한 것이 아니기 때문에 Java Application에서 정확하게 같은 이름을 지닌 여러 type을 load할 수 있다. 만약 같은 이름의 type이 다른 namespace에 여러 개 load되어 있을 때 class loader 는 적어도 자신이 load하는 type을 구별할 필요가 있다.

Namespace는 class loading단계 중 Linking, 조금 더 자세히 말하자면 Linking과정의 마지막 단계인 resolving 단계를 지날 때 JVM 인스턴스에서 사용된다. Resolving은 참조하는 모든 클래스를 로딩하는 과정인데 이 때 namespace는 JVM이 각 load된 type의 데이터로서 type을 import한 class load를 트래킹할 때 사용되는 것이다. JVM이 하나의 class A에서 다른 class B를 참조할 필요가 있을 때 A를 load한 같은 class loader로 하여금 B를 참조하도록 한다.

신고

'기술이야기' 카테고리의 다른 글

[JVM Internal] Method Area  (2) 2008.03.20
[JVM Internal] namespace  (0) 2008.02.25
Monitor  (0) 2008.02.21
HP Process Monitoring  (0) 2008.02.19
댓글
댓글쓰기 폼