[Java] final, static, static final 차이점 완벽 정리

2026. 5. 9. 15:26·개발 공부/Java-Spring

1. final (상수화)

final 키워드는 "마지막"이라는 뜻입니다. 변수, 메서드, 클래스에 붙어 변경을 금지합니다.

  • 변수 앞: 한 번 값을 넣으면 다른 값으로 바꿀 수 없습니다. (재할당 금지)
  • 메서드 앞: 자식 클래스에서 이 메서드를 재정의(Overriding) 할 수 없습니다.
  • 클래스 앞: 다른 클래스가 이 클래스를 상속(Inheritance) 할 수 없습니다.
  • 핵심: "객체마다 값은 다를 수 있지만(예: 학번), 한 번 정해지면 끝까지 간다!

2. static  (공유)

static 키워드는 객체(인스턴스)가 아닌 클래스 자체에 고정시키는 역할을 합니다.

  • 메모리 효율: 객체를 생성(new)할 때마다 메모리에 새로 만드는 게 아니라, 딱 한 번만 만들어놓고 모든 객체가 공유해서 사용합니다.
  • 사용 방법: 객체를 만들지 않고도 클래스명.변수명으로 바로 사용할 수 있습니다.
  • 핵심: "모든 객체가 공통적으로 가져야 할 성질(예: 학교 이름)에 사용한다!"

3. static final (절대 변하지않은 상수)

static과 final이 만났습니다. 자바에서 진정한 의미의 상수를 만들 때 사용합니다.

  • 특징: 모든 객체가 공유(static)하면서, 절대로 그 값을 바꿀 수도 없는(final) 상태입니다.
  • 관례: 변수명은 모두 대문자로 쓰고, 단어 사이는 언더바(_)로 구분하는 것이 국룰입니다.
  • 예시: MIN_AGE, PI, MAX_STOCK 등
구분 final static static final
의미 값 변경 불가 클래스 레벨에서 공유 공용 상수 (공유 + 변경불가)
메모리 객체마다 생김 (Heap) 클래스당 하나 (Method) 클래스당 하나 (Method)
값의 특징 객체마다 다를 수 있음 객체마다 동일함 객체마다 동일함
수정 가능 X O (공유값이 바뀜) X

'개발 공부 > Java-Spring' 카테고리의 다른 글

스프링 부트 6개 도메인 통합 테스트 구축기: 인프라 격리부터 영속성 타이밍 버그 검거까지  (0) 2026.05.27
[JPA] 엔티티의 생명주기 3단계  (0) 2026.05.10
Spring의 핵심, IoC와 DI: 제어의 역전과 의존성 주입 완벽 가이드  (0) 2026.01.23
자바 접근 제어자및 스프링부트에서 사용예시  (0) 2026.01.20
[JPA] N+1 문제, 원인과 결과로 완벽하게 이해하기  (0) 2026.01.20
'개발 공부/Java-Spring' 카테고리의 다른 글
  • 스프링 부트 6개 도메인 통합 테스트 구축기: 인프라 격리부터 영속성 타이밍 버그 검거까지
  • [JPA] 엔티티의 생명주기 3단계
  • Spring의 핵심, IoC와 DI: 제어의 역전과 의존성 주입 완벽 가이드
  • 자바 접근 제어자및 스프링부트에서 사용예시
cookiboii
cookiboii
초보 개발자입니다.
  • cookiboii
    Just Do it
    cookiboii
  • 전체
    오늘
    어제
    • 분류 전체보기 (80) N
      • 잡소리 (2)
      • ide 꾸미기 (2) N
      • 회사공부 (0)
      • 면접복기 (5)
      • 개발취직관련 좋은 글귀 (12)
      • 개발 공부 (58)
        • 백준 (0)
        • web (3)
        • js&ts&react (4)
        • Java-Spring (18)
        • 개발책 리뷰 (0)
        • c++ (0)
        • git (0)
        • code up 문제 (5)
        • 네트워크 (5)
        • 자료구조&알고리즘 (2)
        • ci,cd (1)
        • 프로젝트 (9)
        • sql (4)
        • 컴퓨터구조 (1)
        • 운영체제 (5)
        • python (0)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

    • 네이버블로그
    • 깃허브
  • 공지사항

  • 인기 글

  • 태그

    깃허브 #깃 #커밋
    js #web
    JVM
    Java
    롤 #리그오브레전드
    코딩
    개발
    포켓몬 #vscode #vscode꾸미기 #개발
    라이엇 #api #롤api
    자바 #Java #JPA #개발자 #개발 #초보
    ci #개발 #git
    사이드프로젝트 #토이프로젝트 #개발 #개발자
    js #제이쿼리 #비동기통신 #코딩 #프로그래밍
    코드업 #코딩문제
    js #예약어 #자바스크랩트
    자바
    프로그래밍
    springai #spring #java
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.6
cookiboii
[Java] final, static, static final 차이점 완벽 정리
상단으로

티스토리툴바