Class Loader

📁 ex01

☕ NoUse.java

public class NoUse {
    // 💡 static 초기화 블록
    static {
        System.out.println("✅ 초기화 완료 (한 번만 실행됨)");
    }
}

☕ Main.java

				try {
            Thread.sleep(2000);

            //  ⭐️ 아래의 클래스를 로드 & 초기화하는 시점
            NoUse noUse1 = new NoUse();
            NoUse noUse2 = new NoUse();

        } catch (InterruptedException e) {
            throw new RuntimeException(e);
        }

java.lang.ClassLoader 클래스

📁 ex02

☕ Main.java

				//  💡 ClassLoader 인스턴스를 가져오는 방법들

        //  Class의 메소드로 가져옴
        ClassLoader loader1 = Main.class.getClassLoader();
        //  실행중인 쓰레드의 메소드로 가져옴
        ClassLoader loader2 = Thread.currentThread().getContextClassLoader();
        //  ClassLoader의 정적 메소드로 가져옴
        ClassLoader loader3 = ClassLoader.getSystemClassLoader();

        //  💡 모두 동일
        boolean areSame1 = loader1 == loader2;
        boolean areSame2 = loader2 == loader3;