brunch

You can make anything
by writing

C.S.Lewis

by 서준수 Mar 23. 2019

자바 주요 변수의 특징

1. 로컬 변수

 로컬 변수는 초기화를 꼭 해야한다. 초기화 하지 않고 사용을 하면 Variable '변수명' might not have been initialized라는 에러가 발생한다. 함수가 호출되면 생성되고 함수가 끝날 때 소멸된다.


private void foo() {
    int a = 10;
    System.out.println("name = " + a);
}


선언 위치 : 함수 내부

저장 위치 : 스택 메모리


2. 인스턴스 변수 (멤버 변수)

 인스턴스 변수는 로컬 변수와 다르게 초기화를 하지 않아도 된다. 자동으로 기본값으로 초기화 되기 때문이다. 다음 코드에서 name은 null, age는 0을 기본값으로 가진다. 객체가 생성될 때 함께 생성된다. 소멸은 생성된 객체(instance)를 더 이상 참조하는 참조 변수가 없을 때 GC(Garbage Collector)에 의해서 제거된다.


public class Developer {
    private String name;
    private int age;

}


선언 위치 : 함수 외부

저장 위치 : 힙 메모리


3. static 변수 (클래스 변수)

 인스턴스 변수처럼 함수 외부에 선언을 하며 초기화를 하지 않아도 기본값으로 설정된다. 차이가 있다면 static 키워드를 꼭 사용해야 한다. static 변수는 프로그램 실행 시 생성되고 종료될 때 소멸된다. 따라서 프로그램이 실행되는 동안에는 값이 유지되어야 하는 경우에 사용된다.


public class Developer {
    private static String name;
    private static int age;

}


선언 위치 : 함수 외부

저장 위치 : 함수 영역 (Method Area)

매거진의 이전글 자바의 객체 (3/3)
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari