It's easy, if you try

[Java] final 사용 방법 간단 정리 (static과의 차이점) 본문

언어/자바(Java)

[Java] final 사용 방법 간단 정리 (static과의 차이점)

s5he2 2021. 9. 15. 11:30

Final

final은 메소드, 클래스, 변수에 붙여서 사용합니다.

1. Immutable 변수

final 변수 선언 시 추후에 수정이 불가합니다.

final int COOKIE_SIZE = 3;

추후에 수정할 수 없기 때문에 초기화가 필수입니다. 

2. final 함수

메소드 오버라이트를 제한합니다.

3. final 클래스

상속이 불가능한 클래스가 됩니다. Wrapper Class 도 final 클래스에 해당됩니다.

 

Static과의 차이점

static은 모든 인스턴스에 공통된 값을 유지합니다. 또한,

메모리에 한번 할당되어 프로그램이 종료될 때 해제됩니다.

static 또한 메소드, 클래스, 변수에 사용될 수 있습니다.

static 변수는 정적 필드, static 메소드는 정적 메소드라고도 합니다. 이 둘을 합쳐 정적 멤버 또는 클래스 멤버라고 합니다.

단점은 정적멤버는 가비지 콜렉터에 의해 관리되지 않는 영역에서 프로그램 종료시까지 메모리가 할당된 채로 존재하게 됨에 따라 남용시에 시스템 성능에 악영향을 줄 수있다는 점입니다.

 

결론

한 번 선언 후 변경 불가능해야하는 경우 -> final

여러 인스턴스에서 공통으로 사용 -> static

여러 인스턴스에서 공통으로 사용하면서, 변경 불가능 -> static final

Comments