본문 바로가기

develop/Java

static

static 키워드

클래스, 메서드, 변수의 지정자로 사용가능하다..

메서드 혹은 변수에 static 키워드를 사용할 경우

인스턴스 생성과 관계없이 클래스가 로딩되는 시점에 메모리에 로딩..

=> 따라서, 인스턴스 생성(참조변수) 없이 클래스명만으로 접근 가능

 

 

 

static 변수=정적 변수

인스턴스 생성되기 전, 클래스가 메모리에 로딩될 대 함께 로딩됨

인스턴스 생성 없이 클래스명만으로도 해당 변수에 접근이 가능함

=> 클래스명.변수명 형태로 접근

모든 인스턴스가 하나의 변수(메모리)를 공유

=> 하나의 인스턴스에서 값을 변경하면 나머지 인스턴스도 영향받음

 

 

보통은 인스턴스가 생성되서 앞에 참조 변수를 붙인 형태로 접근했지만

static이 붙으면 클래스가 메모리에 로딩되면서 같이 나타난다.

그래서 인스턴스 생성 전에도 클래스명만 사용해서 변수나 메서드에 접근 가능하다.

반대로 일반적인 인스턴스 변수는 인스턴스가 생성되어야만 접근 가능하며,

클래스명만으로는 접근이 불가능하고 반드시 참조변수가 붙어야한다.

 

 

또, 하나의 변수를 공유하기 때문에 static 을 사용하면 변경한 값이 모든 인스턴스에

영향을 주게 된다. 

'develop > Java' 카테고리의 다른 글

싱글톤 디자인 패턴(Singleton Design Pattern)  (0) 2021.03.01
static 메서드  (0) 2021.02.23
코드의 재사용  (0) 2021.02.18
this 키워드  (0) 2021.02.17
생성자 오버로딩(Constructor Overloading)  (0) 2021.02.16