IT/WEB

[Java] static 변수와 static 메소드 대강 정리

오달달씨 2021. 10. 24. 02:57
728x90
반응형

JAVA에서 Static이란? 메모리가 한번 할당되어 프로그램이 종료될 때 해제되는 것을 의미.

 

일반적으로 Class는 Static 영역에 생성되고, new 연산으로 생성한 객체는 Heap 영역에 생성된다. 객체 생성시 할당된 heap영역의 메모리는 Garbage Collection(GC)을 통해 수시로 관리받음. 

Static 영역에 할당된 메모리는 모든 객체가 공유하는 메모리이지만, GC의 관리 영역 밖에 존재하므로 Static을 자주 사용하면 프로그램의 종료시까지 메모리가 할당된 채로 존재한다.

 

Static 변수 특징

- Static 변수는 클래스 변수이다.

- 객체를 생성하지 않고도 Static 자원에 접근이 가능하다.

 

Static 변수(정적 변수) :

JAVA에서 Static 변수는 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 변수, 메모리에 한번 할당되므로 여러 객체가 해당 메모리를 공유하게 된다. 

 

Static 메소드(정적 메소드) :

Static Method는 객체의 생성 없이 호출이 가능하며, 객체에서는 호출이 가능은 하지만 지양하고 있다. 일반적으로 유틸리티 관련 함수들은 여러 번 사용되므로 static 메소드로 구현을 하는 것이 적합하다. 

 

 

같은 JVM, 같은 WAS 인스턴스에서 Static이라고 선언하면 같은 주소와 같은 값을 참조.

 

활용 방안(?) : 

코드성 데이터는 DB에서 한번만 읽는다. 데이터의 양이 많고 자주 바뀔 확률이 높은 큰 회사의 부서코드나 큰 쇼핑몰의 상품코드를 제외하고 건수가 많지 않거나 부서가 적은 회사의 코드, 데이터 건수가 많지 않으나 조회 빈도가 높은 코드성 데이터는 DB에서 한번만 읽어서 관리하는 것이 성능 측면에서 좋다.

 

 

728x90
반응형