static은 클래스 멤버라고 하며, 클래스 로더가 클래스를 로딩해서 메소드 메모리 영역에 적재할 때 클래스 별로 관리됩니다.
static 키워드를 통해 생성된 정적 멤버들은 PemGen 또는 Metaspace에 저장되며 저장된 메모리는 모든 객체가 공유하며 하나의 멤버를 어디서든지 참조할 수 있는 장점이 있습니다.
그러나, GC(Garbage Collector)의 관리 영역 밖에 존재하기 때문에 프로그램 종료 시까지 메모리가 할당된 채로 존재합니다. 너무 남발하게 되면 시스템 성능에 악영향을 줄 수 있습니다.
'Back-end > Java' 카테고리의 다른 글
[Java] 객체지향이란 (0) | 2021.11.17 |
---|---|
[Java] 접근 제어자의 종류 (0) | 2021.11.16 |
[Java] 클래스는 무엇이고 객체는 무엇인가요? (0) | 2021.11.16 |
[Java] 인터페이스와 추상 클래스의 차이점 (0) | 2021.11.16 |
[Java] 오버라이딩과 오버로딩이 무엇이며 어떤 차이가 있을까요? (0) | 2021.11.16 |