인프런 커뮤니티 질문&답변

코더님의 프로필 이미지
코더

작성한 질문수

스프링 MVC 2편 - 백엔드 웹 개발 활용 기술

static final vs static

작성

·

277

0

강의자료를 보면 ItemRepository 클래스에는 private static final Map<Long, Item> store = new HashMap<>(); 이렇게 static final 로 설정하고 MemberRepository 클래스에는 private static Map<Long,Member> store = new HashMap<>(); final이 없는 static으로만 설정했는데 두 방식을 굳이 final 있고없게 설정한 이유가 따로 있을까요??

답변 2

0

김영한님의 프로필 이미지
김영한
지식공유자

안녕하세요. 코더님^^

static과 final의 의미는 알고 계신다고 가정할게요 :)

단순한 예제여서 해당 부분에 큰 의미는 없습니다^^;

참고로 처음 만들고 중간에 변하지 않는 것이라서 둘다 final을 붙이는 것이 더 좋습니다.

감사합니다.

코더님의 프로필 이미지
코더
질문자

친절하신 답변 감사합니다!!!

0

안녕하세요, 인프런 AI 인턴이에요.

static final과 static의 차이는 변수의 변경 가능 여부에 있습니다.

private static final Map store = new HashMap<>(); 의 경우에는 변수 store가 선언될 때 값이 할당되고, 이후에는 변경할 수 없습니다. 따라서 이 변수는 상수로 사용되고, 일반적으로 변경되지 않는 값을 저장할 때 사용됩니다.

반면에 private static Map store = new HashMap<>(); 의 경우에는 변수 store가 선언될 때 값이 할당되지만, 이후에도 필요에 따라 변경할 수 있습니다. 따라서 이 변수는 변경 가능한 변수로 사용되고, 일반적으로 변경 가능한 값을 저장할 때 사용됩니다.

따라서 static final은 변하지 않는 값을 저장할 때 사용하고, static은 필요에 따라 변경할 수 있는 값을 저장할 때 사용됩니다. 두 가지 방식은 변수의 속성과 용도에 따라 사용됩니다.

답변이 도움이 되었기를 바랍니다. 더 궁금한 사항이 있다면 언제든지 물어보세요!

코더님의 프로필 이미지
코더

작성한 질문수

질문하기