[JAVA] Static의 의미와 장단점

개-발뚜-발·2024년 2월 15일
0

JAVA

목록 보기
3/4
  1. 자바 static이란?

->자바에서 static은 '고정된' 뜻으로, 정적이라고도 부른다. 클래스 레벨에서 사용되며 해당 멤버 또는 메서드가 인스턴스에 종속되지 않고 클래스 자체에 속하도록 지정하는 역할을 한다.

  • 정적 변수 (Static Variables):
    static 키워드로 선언된 변수는 클래스의 모든 인스턴스에 공유됩니다. 즉, 모든 인스턴스가 동일한 변수 값을 공유하게 됩니다.
    정적 변수는 클래스 이름으로 직접 접근하며, 객체의 생성 없이 사용할 수 있습니다.

  • 정적 메서드 (Static Methods):
    static 키워드로 선언된 메서드는 클래스 수준에서 동작하며, 특정 인스턴스에 종속되지 않습니다.
    정적 메서드는 클래스 이름으로 직접 호출할 수 있으며, 객체의 생성 없이 사용할 수 있습니다.
    주로 유틸리티 메서드나 프로그램의 전역적인 동작을 구현하는 데 사용됩니다.

  • 정적 블록 (Static Blocks):
    static 블록은 클래스가 로딩될 때 실행되는 블록으로, 클래스 초기화에 사용됩니다.
    정적 블록은 클래스의 정적 변수를 초기화하거나, 초기화된 값을 가지고 다양한 설정 작업을 수행하는 데 활용됩니다.

  1. static의 장/단점
  • static 사용의 장점
    1. 메모리를 효율적으로 사용이 가능하다.
    -> 생성할 때 마다 인스턴스가 힙에 올라가는 것이 아닌 고정 메모리 이므로 보다 효율적이다.
    2. 속도가 빠르다.
    -> 객체를 생성하지 않고 사용하기 때문에 속도가 빠르다는 이점이 있다.

  • static 사용의 단점
    1. 무분별한 static의 사용은 메모리 유수(Leak)의 원인이 된다.
    -> 프로그램 종료 시점에 메모리를 반환하는 속성이 있어
    GC(Garbage collection) 대상이 아니기 때문이다.
    2. 재 사용성이 떨어진다.
    -> 정적인 값이기때문에 interface를 구현하는데 사용될 수 없다.

profile
관심O 댓글O 감놔라배놔라O 가르쳐주는거O 한가할때올립니다

0개의 댓글