본문 바로가기
공부/Java

정적(static) 메소드 써도 될까?

by JERO__ 2022. 4. 2.

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

댓글