전체 방문자
오늘
어제
모달조아
Better than yesterday
모달조아
  • 분류 전체보기 (147)
    • PS (86)
      • BOJ (79)
      • 프로그래머스 (6)
    • 이론 (41)
      • 자료구조 (2)
      • 알고리즘 (8)
      • 데이터베이스 (1)
      • 운영체제 (1)
      • 네트워크 (3)
      • 디자인패턴 (7)
      • Java (13)
      • Spring (4)
      • JPA (1)
      • Git (1)
    • 개발 (18)
    • 프로젝트 (1)
    • 기록 (0)
      • 후기 (0)
    • etc (1)

최근 글

티스토리

hELLO · Designed By 정상우.
모달조아

Better than yesterday

이론/Java

상수와 static final

2022. 11. 22. 22:08

상수는 어떤 것일까?

  1. 사용하는 모두에게 같은 값이어야함.
  2. 값이 변하지 않아야 함.

왜 상수를 선언할 때 static final 키워드를 붙일까?

  • static의 의미
    static이 아닌 데이터들은 런타임 시점에 동적으로 메모리에 할당되는데
    static 키워드가 붙은 데이터는 컴파일시점에 가비지컬렉터의 관리 밖인 static영역에 할당되므로 실행 직후부터 끝날때까지 쭉 유지됨
  • final의 의미
    초기화를 한번만 허용한다는 의미. 즉, 한번 초기화되면 더 이상 초기화할 수 없다.
  • 의문이 생겼던 부분
    그럼 final만 붙어도 상수아닌가? 왜 static까지 붙여줘야 하지?
    final 만 있으면 모두에게 같은 값이라는 것을 보장할 수 없다!
    A와 B라는 사용자가 C변수에 final 키워드를 줬다고 해보자. 초기화 후 사용자 각각에게는 C는 변하지 않는 값이겠지만, 각자 다른 값으로 초기화를 했다면?
    우리가 생각하는 상수의 의미를 만족시키지 못한다.

결론

  • static final을 함께 사용하여 모두에게 동일하고 변하지 않는 값을 만들자
저작자표시 (새창열림)

'이론 > Java' 카테고리의 다른 글

Checked exception 과 Unchecked exception  (0) 2022.11.22
BufferedReader, BufferedWriter 사용 후 close 해야하는 이유  (0) 2022.11.22
final 키워드 헷갈리는 부분 정리  (0) 2021.11.11
java.lang 패키지 / 오토 박싱/ 오토 언박싱  (0) 2021.07.28
Java Object 클래스  (0) 2021.07.27
    '이론/Java' 카테고리의 다른 글
    • Checked exception 과 Unchecked exception
    • BufferedReader, BufferedWriter 사용 후 close 해야하는 이유
    • final 키워드 헷갈리는 부분 정리
    • java.lang 패키지 / 오토 박싱/ 오토 언박싱
    모달조아
    모달조아

    티스토리툴바