자바에서 사용하는 변수의 종류는 4가지이다.
지역 변수(local variables) : 지역변수를 선언한 곳(생성자, 메서드, static 블록 등) 그 블록({}) 안에서만 생명력을 가진다. 지역변수를 선언한 메서드가 끝나면 자동으로 소멸.
인자 (argument) : 메서드가 호출될 때 생명이 시작되고, 메서드가 끝나면 소멸. 단, 호출한 메서드에서 넘겨준 레퍼런스자료형은 그대로 살아 남는다.
매개 변수(Parameters) 는 메소드, 생성자를 선언할때 메서드에서 전달받은 값
인스턴스 변수(instance variables) : 객체가 생성될 때 생명이 시작되고, 그 객체를 참조하고 있는 다른 객체가 없으면 소멸.
클래스 변수(class variables) : 클래스가 생성될 때 생명이 시작되고, 자바 프로그램이 끝날 때 소멸. 인스턴스 변수에 static 키워드가 붙는다고 생각하면 된다.
예제 코드를 보고 이해하자.
public class TestTest {
// 인스턴스 변수
int instanceVariables;
// 클래스 변수
static int ClassVariables;
int argument = 10;
method(argument); // 전달인자(Argument)
void method(int parameter) { // 매개변수(Parameter)
// 지역 변수
int localVariables;
}
}
참고) 클래스 변수로 갈수록 변수의 생명주기(Life cycle)이 길어진다.
자바의 신 1권, 저 이상민