자바공부하기129.

패키지와 컴파일러/JVM

- 패키지 이름이 생략된 클래스/인터페이스 이름은 컴파일러가 import 문장을 참조하여 모두 완전한 패키지이름으로 변환하여 컴파일

: 이름으로 변환하는 과정 중 완전한 패키지 이름을 가진 클래스가 실제 로딩 가능한 클래스인지 알아보는 과정이 필요 - 클래스로더(import가 여러 개 될 수 있음을 기억할 것)

: 이것은 뒤의 classpath와 관련된다.

: 패키지 이름은 반드시 그 파일이 속해있는 디렉토리 이름과 일치해야 한다.

 

 

1. 컴파일러는 위와 같이 완전 클래스명 후보군을 만들어낸다.

2. 그 다음 CLASSPATH를 기반으로 위 후보 클래스 파일이 실제 존재하는지 검색한다. 자바 디폴트 라이브러리(rt.jar)를 검색한 후 현재 디렉토리(.)를 검사한다.

: java.lang.newClass를 찾아본다면 ./java/lang/디렉토리에 newClass.class파일이 있는지 찾는 것이다.

3. 찾아서 단 하나만 일치하는 게 var의 형을 결정한다. 그러나 여러 개가 있다면 충돌 에러를 발생시킨다.

+ Recent posts