◽ Java language/Java
[Java] Static
kkk20000a
2020. 2. 23. 21:12
참고로 다른 전역변수나 기타 변수로 선언을 한다면, Heap영역에 올라간다. Heap 영역에서는 가비지 컬렉션이 작동된다.
"public static void main(String[] args) { }"
항상 자바의 초기 프레임으로 외웠는데 궁금해서 찾아보았다. 찾아보다 두가지의 개념에 혼동이 생겨 정리를 하였다.
전역변수라는 것은 ?
- 함수 외부에서 선언된다.
- 프로그램의 시작과 동시에 메모리 공간에 할당되어 종료 시까지 존재한다.
- 별도의 값으로 초기화하지 않으며 0으로 초기화된다.
- 프로그램 전체 영역 어디서든 접근이 가능하다.
- 단점 : 너무많이써버리게되면 프로그램이 복잡해져버린다. 프로그램을 복잡하게 만드는 주범이다.
static변수 라는것은 ?
- 선언된 함수 내에서만 접근이 가능하다. (지역변수 특성)
- 딱 1회 초기화되고 프로그램 종료 시까지 메모리 공간에 존재한다. (전역변수 특성)
- 장점 : static지역변수는 전역변수보다 상대적으로 안정적이다. ( 이유는 전역변수는 어디서든지 접근가능하기 때문에 소스가 꼬일 염려가 있다. )