Java 컴파일러가이 변수가 항상 초기화된다는 것을 이해하지 못하는 이유는 무엇입니까? class Foo{ public static void main(String args[]){ final int x=101; int y; if(x>100){ y=-1; } System.out.println(y); } } Java 컴파일러는 if 문의 조건이 항상 참이므로 y는 항상 초기화됩니다. 예상대로 컴파일 오류가 없습니다. class Bar{ public static void main(String args[]){ final int x; x=101; int y; if(x>100){ y=-1; } System.out.println(y); } } 그러나 x의 선언과 초기화를 두 줄로 나누면 컴파일러는 조건이 항상 참이고 ..