0
변수 이름으로 enum reserved 키워드를 사용하는 간단한 Java 클래스가 있습니다. 나는 자바 1.6에서 자바 1.4이 코드를 컴파일하고 실행할 수 있어요 : 열거는 예약 키워드이기 때문에 JVM 런타임은 어떻게 이전 버전과의 호환성을 유지합니까?
public class Main {
public static void main(String[] args) {
String enum = "ENUM String";
System.out.println(enum);
}
}
그러나 자바 1.6 컴파일러는이 코드를 컴파일되지 않습니다. Java 1.6 런타임이이 코드를 실행하는 이유는 무엇입니까?
감사합니다. Java 1.6 컴파일러는 열거 형을 제한하지만 Java 런타임은 신경 쓰지 않거나 Java 1.4 이전 버전 호환성 모드에서이 클래스를 실행한다는 것을 알고 있습니까? –
클래스 바이트 코드에는 로컬 변수의 이름조차 없습니다. 그들은 단지 메모리 슬롯 번호를 얻습니다. – Nayuki