- 자바 static이란?
->자바에서 static은 '고정된' 뜻으로, 정적이라고도 부른다. 클래스 레벨에서 사용되며 해당 멤버 또는 메서드가 인스턴스에 종속되지 않고 클래스 자체에 속하도록 지정하는 역할을 한다.
정적 변수 (Static Variables):
static 키워드로 선언된 변수는 클래스의 모든 인스턴스에 공유됩니다. 즉, 모든 인스턴스가 동일한 변수 값을 공유하게 됩니다.
정적 변수는 클래스 이름으로 직접 접근하며, 객체의 생성 없이 사용할 수 있습니다.
정적 메서드 (Static Methods):
static 키워드로 선언된 메서드는 클래스 수준에서 동작하며, 특정 인스턴스에 종속되지 않습니다.
정적 메서드는 클래스 이름으로 직접 호출할 수 있으며, 객체의 생성 없이 사용할 수 있습니다.
주로 유틸리티 메서드나 프로그램의 전역적인 동작을 구현하는 데 사용됩니다.
정적 블록 (Static Blocks):
static 블록은 클래스가 로딩될 때 실행되는 블록으로, 클래스 초기화에 사용됩니다.
정적 블록은 클래스의 정적 변수를 초기화하거나, 초기화된 값을 가지고 다양한 설정 작업을 수행하는 데 활용됩니다.
- static의 장/단점
static 사용의 장점
1. 메모리를 효율적으로 사용이 가능하다.
-> 생성할 때 마다 인스턴스가 힙에 올라가는 것이 아닌 고정 메모리 이므로 보다 효율적이다.
2. 속도가 빠르다.
-> 객체를 생성하지 않고 사용하기 때문에 속도가 빠르다는 이점이 있다.
static 사용의 단점
1. 무분별한 static의 사용은 메모리 유수(Leak)의 원인이 된다.
-> 프로그램 종료 시점에 메모리를 반환하는 속성이 있어
GC(Garbage collection) 대상이 아니기 때문이다.
2. 재 사용성이 떨어진다.
-> 정적인 값이기때문에 interface를 구현하는데 사용될 수 없다.