
클래스 & 인터페이스의 모음 단위
FQCN (Full Qualified Class Name)java.langjava.util다른 패키지에 있는 클래스를 사용하고자 할 때 사용
JVM이 클래스 로딩 시 .class 파일을 찾는데 기준이 되는 파일 경로
; (세미콜론): (콜론)환경 변수 사용CLASSPATH=/export/home/username/java/classes:/export/home/username/java/myclasses.zip:/export/home/username/java/myclasses.jar-cp) 옵션 사용javac -cp 파일경로 자바파일.javajava -cp 파일경로 자바파일.javaParentClass.java
package whiteship_study.week7_package.parent;
public class ParentClass {
public static void main(String[] args) {
System.out.println("hi");
}
}
ParentWithoutPackage
public class ParentWithoutPackage {
public static void main(String[] args){
System.out.println("hihi");
}
}
javac → java

ParentClass는 실행되지 않음ParentWithoutPackage는 실행됨.class 파일 실행 조건
package의 경로가 포함되어야 함
루트 디렉토리에서 실행해야 함 (참조하는 다른 클래스가 없다는 가정하에)

루트 디렉토리 외 다른 디렉토리에서 자바 파일 실행
javac
-cp 옵션으로 컴파일하려는 .java 파일의 위치 지정java
1. -cp 옵션으로 클래스 파일의 루트 디렉토리 지정
2. 클래스 풀네임 지정

시스템 클래스로더는 런타임 시 $CLASSPATH 환경변수를 호출해 해당 디렉토리의 클래스 파일을 로딩함

System Class Loader멤버 필드, 메소드의 접근 범위를 정의하기 위해 사용
누구나 접근 가능같은 패키지or 상속받은 경우 접근 가능같은 패키지 내 접근 가능해당 클래스 내 접근 가능//PublicClass.java
class PublicClass {
public static void main(String[] args) {}
class PublicClass2 {}
}