참고: 김영한의 자바 입문 강의 정리한 내용
변수 선언과 초기화
int a; // 변수 선언
a = 10; // 변수 초기화
Java에서는 변수를 사용하기 전에 초기화를 해야 한다.
만약 변수를 초기화 하지 않은 상태에서 사용하려고 한다면?
int a; // 변수 선언
System.out.println(a); // 초기화 하지 않은 상태로 변수 a 사용
다음과 같은 컴파일 에러가 발생한다. (해석: 변수가 초기화 되지 않았다)
java: variable a might not have been initialized
초기화 되지 않은 변수를 사용할 때 이런 오류가 발생하는 이유
컴퓨터에서 메모리는 여러 시스템이 함께 사용하는 공간이다. 그래서 어떠한 값들이 계속 저장되고 있다.
마찬가지로, 변수를 선언하면 메모리상의 어떤 공간을 차지하고 사용하게 된다. 그런데 그 공간은 기존에 어떤 값이 있었는지 모른다.
공중 화장실에 가면 종종 보이는 문구가 있는데, "아름다운 사람은 머무는 자리도 아름답다" 이 말은 "다 썼으면 치우고 가라" 라는 의미로 해석된다. 그런데, 메모리에는 다 쓰고나서 치우고 떠나는 게 아니라 그냥 내버려두고 떠나는 모양이다. 따라서 기존에 어떤 값이 있었는지 모를 공간을 부여받게 된 변수를 초기화 하지 않고 사용하려고 하면 이상한 값이 출력될 수 있다.
이러한 문제를 예방하기 위해서 자바는 변수를 초기화 하도록 강제하고 있다.
참고:
- 컴파일 에러는 자바 문법에 맞지 않았을 때 발생하는 에러이다. 컴파일 에러 덕분에 문법적 오류를 빠르게 찾아서 고칠 수 있다.
- 지역 변수(Local Variable)은 개발자가 직접 초기화 해줘야 한다. 클래스 변수와 인스턴스 변수는 자바가 자동으로 초기화를 해준다.
'프로그래밍 언어 > Java' 카테고리의 다른 글
[Java] 스코프(Scope) (0) | 2024.08.13 |
---|---|
[Java] 문자열 비교 (equals) (0) | 2024.08.09 |
[Java] 문자열 + 숫자 (0) | 2024.08.09 |
[Java] 변수 타입 정리(자주 사용되는 것과 사용되지 않는 것) (0) | 2024.08.08 |
[Java] Java가 실행되는 과정 (0) | 2024.08.08 |