변수 초기화를 안한다면
public class Var6 {
public static void main(String[] args) {
int a;
// System.out.println(a); // 오류가 나면서 실행되지 않음
}
}
java : variable a might no have been initialized
오류가 발생하는 이유
- 변수의 선언은 컴퓨터의 메모리의 공간을 사용하겠다는 명령어 이다.
- 컴퓨터의 메모리는 여러 시스템이 함께 사용한다.
- 그래서 어떠한 값들이 계속 저장이 된다.
- 변수를 선언하면 메모리상의 공간을 차지 하고 사용한다.
- 근데 그 공간에 기존에 어떤값이 들어 있을 수도 있다, 이렇게 개발자가 의도한 값을 사용하지 않으면 프로그램을 실행했을 때 원하지 않는 값을 마주 할 수 있다.
예시
- 게임 레벨을 저장하는 공간에 숫자 7이 들어 있다고 가정하자
- 종료하면 메모리 공간에 숫자 7은 그대로 있다.
- 종료하고 다른 메모리가 이 공간을 쓸 수 있다.
- 그 메모리에는 숫자 7이 아닌 본인이 의도한 값을 사용하기 위해 초기화를 시킨다.
지금은 숫자 7를 가정하지만 그 메모리에 뭐가 들어 있을 지는 모르니 자바에서는 변수를 초기화하도록 강제하고 있다.
지역 변수는 개발자가 직접 초기화 해주어야 하지만 클래스 변수와 인스턴스 변수는 자바가 자동으로 초기화를 진행한다.
컴파일 에러는 자바 문법에 맞지 않았을 때 발생하는 에러아디,
컴파일 에러는 오류를 빨리, 그리고 명확하게 찾을 수 있기 때문에 빠르게 버그를 찾아서 고칠 수 있다.