static
- JVM이 시작될 때 Method(static) 영역에 저장된다.
- 프로그램이 끝날 때까지 사라지지 않고 메모리에 남아있다(자바기준).
장점
- 속도가 빠르다.
- 반복적인 사용에 효율적이다.
단점
1. 객체지향에서 멀어진다.
- static : 객체지향보다 [절차지향]에 가까운 키워드다.
- C의 전역변수/함수와 성격이 비슷
- 객체의 생성/제거와 관계 없이 메모리에 남아있기 때문
- 객체의 생성주기와 관계가 없다
- 메시지 전달을 위반
- 객체지향의 특징인 다형성을 위반
2. 메모리 효율이 떨어질 수 있다.
- 런타임 중 동적으로 생성된 것들은 GC(Garbage Collection)의 대상이 된다. 반면, static 키워드가 붙은 메소드 등은 GC의 대상이 아니다.
- GC는 동적으로 할당된 메모리만을 대상하기 때문
- statuc 영역이 지나치게 많이 차지하면, 메모리가 부족할 수 있다.
결론
: 장점/단점 모두 존재한다. 적절한 곳에 static 메소드 사용은 메모리를 효율적으로 사용할 수 있을 것이다.
참고 : https://tecoble.techcourse.co.kr/post/2020-07-16-static-method/
'공부 > Java' 카테고리의 다른 글
전략패턴 vs 상태패턴 (0) | 2022.04.26 |
---|---|
[JAVA] 코드 순서 (0) | 2022.04.03 |
[우아한테크코스] 페어프로그래밍 Git (0) | 2022.04.02 |
instanceof의 사용을 지양하자 (0) | 2022.03.30 |
미션 코드로 Git잔디 심기 (0) | 2022.03.28 |
댓글