ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Java] final을 자주 사용하는 이유
    백엔드/Java 2023. 2. 12. 22:10
    반응형

    우테코를 진행하는데 코치님도 그렇고, 리뷰어님도 final을 자주 사용해서 왜 final을 많이 사용하는지 궁금해졌다.

    내가 final을 사용하는 이유는 상수 아니면 멤버 변수에만 사용했는데, 메서드 인자에도 final을 최대한 붙이는 편이라고 해서 관련된 내용을 찾아보았다.

     

     

    1. final 키워드

    자바에서 final 키워드는 변수, 메서드, 클래스에 적용할 수 있다.

     

    변수

    - 단 한 번만 초기화가 가능하다.

    - 원시 타입에 final을 붙이면 값을 변경할 수 없다.

    - 객체 타입에 final을 붙이면 다른 객체로 변경하지 못하는 것이지, 객체 내부 데이터는 변경할 수 있다.

    - 메서드 인자에 final을 붙이면 원시 타입, 객체 타입에 따라 각각의 규칙이 적용된다.

     

    메서드

    - 상속 받은 클래스의 어떤 메서드에 final이 붙여있으면 해당 메서드는 오버라이딩을 할 수 없다.

     

    클래스

    - 해당 클래스를 상속할 수 없다.

     

    이렇게 final을 사용한다면 예상하지 못한 수정을 방지할 수 있으며, 코드를 견고하게 만든다는 특징이 있다.

     

     

     

     

    2. 왜 자주 사용하는 것일까?

     

    [불변성 강제]

    나중에 누군가가 내가 의도하지 않은 변경을 방지할 수 있다.

     

    [코드의 가독성 향상]

    final을 사용하게 된다면 더 이상 재할당이 불가능한 것이므로 다른 개발자들은 한 번만 이해하게 된다면 더 이상 해당 내용이 바뀐다는 생각 없이 다른 코드를 이해하는데 집중을 할 수 있게 된다.

     

    [성능 향상]

    메서드에 final을 붙인 클래스를 상속하는 클래스가 매우 많은 경우에는 JVM에서 메서드 호출을 인라인화를 하여 실행 속도가 조금 더 빨라질 수 있다.

     

    [보안 제공]

    중요한 내용을 가지고 있는 경우에는 예상치 못한 변경이 있을 경우 매우 치명적인 상태가 된다. 그래서 final을 붙여 강제적으로 오버라이딩이나 상속을 하지 못하게 방지할 수 있다.

     

     

     

     

    앞으로 final 사용을 습관화해야겠다.

    반응형

    댓글

Designed by Tistory.