◽ Java language/Java

[Java] Static

kkk20000a 2020. 2. 23. 21:12

Static으로 선언한 변수들은 메모리에 올라간다.

참고로 다른 전역변수나 기타 변수로 선언을 한다면, Heap영역에 올라간다. Heap 영역에서는 가비지 컬렉션이 작동된다.


 

"public static void main(String[] args) { }"
항상 자바의 초기 프레임으로 외웠는데 궁금해서 찾아보았다. 찾아보다 두가지의 개념에 혼동이 생겨 정리를 하였다.

 

전역변수라는 것은 ?

- 함수 외부에서 선언된다.
- 프로그램의 시작과 동시에 메모리 공간에 할당되어 종료 시까지 존재한다.
- 별도의 값으로 초기화하지 않으며 0으로 초기화된다.
- 프로그램 전체 영역 어디서든 접근이 가능하다.

- 단점 :  너무많이써버리게되면 프로그램이 복잡해져버린다. 프로그램을 복잡하게 만드는 주범이다.

 

static변수 라는것은 ?

- 선언된 함수 내에서만 접근이 가능하다. (지역변수 특성)
- 딱 1회 초기화되고 프로그램 종료 시까지 메모리 공간에 존재한다. (전역변수 특성)
- 장점 : static지역변수는 전역변수보다 상대적으로 안정적이다. ( 이유는 전역변수는 어디서든지 접근가능하기 때문에 소스가 꼬일 염려가 있다. )