[Java] Static 변수 및 메서드

Static

Static은 애플리케이션 실행할 때 클래스 영역에 한번 생성되고 프로그램이 종료될때 해제되는 것을 의미합니다. 

메모리 영역

기본적으로 애플리케이션 실행시 클래스 영역 메모리에 클래스와 static 변수 및 메서드가 생성이된다. 객체는 힙 영역에 생성이 되고 GC를 통해 수시로 메모리 관리를 받습니다. static은 모든 객체가 공유하는 메모리여서 어디에서든 접근하는 장점이 있지만, 많이 생성하게 되면 애플리케이션을 종료할때까지 메모리를 차지하기 때문에 퍼포먼스에 악영향을 줄 수 있다.

Static 변수 특징

  1. 객체생성 없이 Static 변수 자원에 접근할 수 있다.
  2. 한번 생성하면 프로그램 종료시까지 메모리에 존재하기에 공유되는 변수에 사용하기에 좋다.

Static 메서드 특징

  1. 객체 생성없이 Static 메서드에 접근할 수 있다.
  2. 객체생성후 접근해도 되지만 권장되는 방법이 아니다.
  3. Static 메서드 안에는 Static 변수 또는 매개변수만 사용 가능하다.