변수의 종류
- 멤버 변수(필드) : 클래스에 선언
- 지역 변수 : 메서드에 선언, 매개변수도 지역 변수의 종류
변수의 초기화
- 멤버 변수 : 자동초기화
- 지역 변수 : 수동 초기화
지역변수는 항상 직접 초기화를 해야한다.
public class InitData {
int value1; //초기화 하지 않음
int value2 = 10;//10으로 초기화
}
한 변수는 초기화를 하지 않았고, 한 변수는 10으로 초기화를 하여 출력해보았다.
public class InitMain {
public static void main(String[] args) {
InitData data = new InitData();
System.out.println("value1 = " + data.value1);
System.out.println("value2 = " + data.value2);
}
}
출력 결과
초기화를 하지 않은 변수는 0,
초기화를 한 변수는 지정한 값이 출력되는 것을 확인할 수 있다.
null
아직 가리키는 대상이 없거나 주소가 없다면 참조형 변수에 null값을 담아놓을 수 있다.
자바에서는 참조형 변수에만 null을 사용할 수 있다.
public static void main(String[] args) {
Data data = null;
System.out.println("1. data = " + data);
data = new Data();
System.out.println("2. data = " + data);
data = null;
System.out.println("3. data = " + data);
}
출력 결과
처음에 참조형 변수에 null값을 할당하여 아직 가리키는 객체가 없었다.
이후 새로운 Data 객체를 생성해서 그 참조값을 변수에 할당했다. 출력 시 참조값이 나왔다.
마지막으로 null값을 다시 할당하여 data는 아무것도 참조하지 않게 되었다.
※자바는 아무도 참조하지 않는 인스턴스가 있으면 GC(가비지컬렉션)가 더 이상 사용하지 않는 인스턴스라고 판단하고 해당 인스턴스를 자동으로 메모리에서 제거해준다.
'java 공부 > 객체지향 with 김영한' 카테고리의 다른 글
[실전자바-기본편]9. 실습하기_2 (5) | 2024.07.24 |
---|---|
[실전자바-기본편]8. NullPointerException (1) | 2024.07.23 |
[실전자바-기본편]6. 기본형과 참조형_2 (12) | 2024.07.22 |
[실전자바-기본편]5. 기본형과 참조형_1 (0) | 2024.07.22 |
[실전자바-기본편]4. 실습하기_1 (0) | 2024.07.22 |