지역 변수 (로컬 변수)
함수 내부에 선언
함수 내부에서만 사용
메모리 : 스택
함수가 호출될 때 생성되고 함수가 끝나면 소멸함
멤버 변수 (인스턴스 변수)
클래스 멤버 변수로 선언
클래스 내부에서 사용하고 private이 아니면 참조 변수로 다른 클래스에서 사용 가능
메모리 : 힙
인스턴스가 생성될 대 힙에 생성되고, 가비지 컬렉터가 메모리를 수거할 때 소멸됨
static 변수 (클래스 변수)
static 예약어를 사용하여 클래스 내부에 선언
클래스 내부에서 사용하고 private이 아니면 클래스 이름으로 다른 클래스에서 사용 가능
메모리 : 데이터 영역
프로그램이 처음 시작할 때 상수와 함께 데이터 영역에 생성되고 프로그램이 끝나고 메모리를 해제할 때 소멸됨
싱글톤 패턴이란?
객체지향프로그램에서 인스턴스를 단 하나만 생성하는 디자인 패턴을 말한다. 가령 회사의 직원들을 객체 지향 프로그램으로 구현한다고 가정할 때 직원은 여럿이지만 회사는 하나이다. 이럴 때 직원 인스턴스는 여러 개 생성하지만 회사 객체는 하나만 생성한다.