자바공부하기129.
패키지와 컴파일러/JVM
- 패키지 이름이 생략된 클래스/인터페이스 이름은 컴파일러가 import 문장을 참조하여 모두 완전한 패키지이름으로 변환하여 컴파일
: 이름으로 변환하는 과정 중 완전한 패키지 이름을 가진 클래스가 실제 로딩 가능한 클래스인지 알아보는 과정이 필요 - 클래스로더(import가 여러 개 될 수 있음을 기억할 것)
: 이것은 뒤의 classpath와 관련된다.
: 패키지 이름은 반드시 그 파일이 속해있는 디렉토리 이름과 일치해야 한다.
1. 컴파일러는 위와 같이 완전 클래스명 후보군을 만들어낸다.
2. 그 다음 CLASSPATH를 기반으로 위 후보 클래스 파일이 실제 존재하는지 검색한다. 자바 디폴트 라이브러리(rt.jar)를 검색한 후 현재 디렉토리(.)를 검사한다.
: java.lang.newClass를 찾아본다면 ./java/lang/디렉토리에 newClass.class파일이 있는지 찾는 것이다.
3. 찾아서 단 하나만 일치하는 게 var의 형을 결정한다. 그러나 여러 개가 있다면 충돌 에러를 발생시킨다.
'자바 > JAVA...Spring' 카테고리의 다른 글
자바공부하기 131. 패키지 만들기 (0) | 2015.06.22 |
---|---|
자바공부하기 130. J2SE 패키지 종류(표준 패키지) (0) | 2015.06.19 |
자바공부하기 128. 패키지 사용법 (0) | 2015.06.19 |
JAVA공부하기 127. 패키지(package) (0) | 2015.06.19 |
JAVA공부하기 126 throws의 원리 (0) | 2015.06.18 |