본문 바로가기

CS 지식/Java

Static이란?

1) static 

static은 프로그램이 시작되고 종료될 때까지 살아있으며, 한 번만 생성이 되어 메모리에 미리 그 값을 고정한다.

초기화 필요없이 곧장 접근이 가능하다.

그렇다고, 불변인가?라고 물었을 때는 불변은 아니다.

해당 객체를 메모리에 올려놓는 역할로 해당 class의 해당 static변수, 메소드는 다른 어떤 class에서 참조했을 때,

똑같은 객체를 참조하고 있다.

 

test.java

 

testexcute.java

다음은 간단한 예제이다.

위에서 말하고 싶은 것은

 

1.  static 변수는 같은 객체를 공유한다.

따라서, new를 통해 새로 생성했다하더라도 static이기 때문에

처음 sysout인 test1~3 모두 같은 값 5가 도출되며,

두 번째 sysout인 test1~3은 test.value로 인해 변경된 1로 도출이 된다.

 

 

 

2. static 변수는 인스턴스 생성(new)을 통해 접근하지 않는다.

그렇기 때문에, test1.value에 노란줄이 그어져 경고하고 있다.

경고 메세지를 열어보면 다음과 같다. 

 

그렇기에 인스턴스를 생성하지 않고, test.value로 바로 접근하였더니 노란줄이 없어졌다.

 

 

'CS 지식 > Java' 카테고리의 다른 글

싱글톤 패턴 (singleton pattern)  (0) 2021.04.23
JVM (Java Virtual Machine) ( & JRE, JDK)  (0) 2021.03.08