Static 이란
- Static 이란 정적, 고정된 이라는 의미를 가짐.
- Static 키워드를 통해서 정적 변수와 정적 메소드를 만들 수 있다.
- Static이 사용된 메서드 같은 경우에는 인스턴스를 생성하지 않고도 호출이 가능하기에 편리하고 속도가 빠름.
장점
1) 메모리 측면에서 효율적
: Static 메모리 영역에 고정된 메모리 영역을 사용하기에 인스턴스를 생성하면서 낭비되는 메모리가 현저하게 줄어든다.
2) 객체 생성 X
: 객체를 생성하지 않기에 클래스가 메모리에 올라가는 시점에 생성되고 바로 사용가능 하기에 속도가 빠르다.
단점
1) 프로그램이 종료될 때 까지 메모리에 할당된 채로 존재
: Static 은 Garbage Collector에 관리를 받지 못하기에 프로그램이 종료될 때 까지 메모리가 할당된 채로 존재하게되어
프로그램 퍼포먼스에 악영향을 줌.
2) 객체지향적이지 않음.
: 메모리의 Static 영역에 할당된 곳에서 데이터를 가져오기에 데이터들이 캡슐화가 되어야 한다는 점에서 객체지향적이지 않음.
3) 인터페이스 구현 불가
: 코드의 재사용성을 높여주는 객체지향적 기능을 사용못하도록 방해함.