: 클래스 단위에서 선언 , 객체의 속성 정보를 저장, Heap 메모리 영역에 저장
선언만 해도 기본 초기화가 된다. ( 0, 0.0 , false, null )
: 생성자 또는 메서드 영역에서 선언되고 초기화됨
특정 기능을 위해 일시적으로 사용된 후 메모리에서 해제
Stack 메모리 영역에 저장
선언 후 명시적 초기화가 필요 (예) int =1;
지역 변수는 자신의 선언된 실행 영역 { } 내에서만 사용이 가능
public class VariableScopeExam {
int i; //instance variable
static int j; // class variable
public VariableScopeExam() {
int i; //local variable
}
public void test1() {
int i; // local variable
}
}
public VariableScopeExam() {
int i; //local variable
System.out.println(i);
}
public void test1() {
int i; // local variable
System.out.println(i);
}
위 코드를 실행했을때 The local variable i may not have been initialized 라는 에러 메시지가 뜬다.
local variable은 명시적 초기화가 필요하다는 것이다.
지역 변수는 선언 후 명시적 초기화가 필요하다.
: class의 정보를 저장할 때 사용
meta space 메모리 영역에 저장 ( 이후 공부 예정 )