Static 키워드에 대하여

  • 클래스 레벨의 변수나, 메서드, 블록 을 정의 할 때 사용된다.
  • 인스턴스(객체)생성 , new키워드 없이도 접근이 가능하다.
  • 모든 인스턴스에서 공유된다.
  • static변수는 프로그램이 빌드될 때 메모리에 할당, 종료될 때 까지 유지. static키워드의 남용은 OOP의 원칙과 상반되며, 메모리 사용량의 증가로 이어질 수 있으므로 주의가 필요하다.

static변수

  • 클래스 레벨에서 공유되는 값을 정의할 때 사용.
  • 인스턴스마다 별도의 복사본을 유지 할 필요가 없다.
  • 메모리 사용을 최적화 할 수 있다.

static메서드

  • 클래스 생성없이 직접 호출 가능.
  • 유틸리티 함수나, 상태가 필요없는 연산에 주로 활용. ex) 수학 연산
  • 인스턴스 생성의 오버헤드 없이 빠른 실행이 가능하다. 단, static메서드는 해당 클래스 내의 다른 static메서드나, 변수에만 접근 할 수 있으므로 인스턴스 멤버에 접근해야하는 경우 사용할 수 없다.

즉, Static은 코드의 재사용성과 효율성을 높일 수 있지만, 객체지향 원칙과 메모리 관리를 고려하여 옳바르게 사용하도록 해야한다.