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

후추후추님의 프로필 이미지
후추후추

작성한 질문수

스프링 핵심 원리 - 기본편

새로운 할인 정책 개발

자바 코드관련 질문

작성

·

143

0

안녕하세요.

스프링 핵심 원리 이해1 - 예제 만들기의

예제 코드관련하여 질문이 있습니다.

OrderApp 클래스에서 아래와 같이 2개의 객체를 생성하게 되면,

 MemberService memberService = new MemberServiceImpl();

 OrderService orderService = new OrderServiceImpl();

한번은 MemberServiceImpl()에 의해서,

private final MemberRepository memberRepository = new MemoryMemberRepository();가 수행되면서

MemoryMemberRepository객체가 생성되고,

 

두번째로 OrderServiceImpl()에 의해서

private final MemberRepository memberRepository = new MemoryMemberRepository();가 또 수행되면서

MemoryMemberRepository객체가 또 생성되는거로 보이는데요.

 

첫번째 객체의 MAP store 변수가 static으로 되어있기 때문에 메모리 저장소는 공유하는 것으로 보이는데요.

 

질문1 : 실제로 메모리상 객체는 어떻게 생성되고, store변수는 어떻게 공유되는지 궁금합니다.

질문2 : private final을 쓰는 이유는? 그 의미는?

※ 자바 기본과정도 공부해봤고, 여기저기 물어봐도 잘 아는 분들이 없네요^^

답변 1

2

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

안녕하세요. 후추후추님^^

이 부분은 제가 답을 바로 드리기 보다는 문제를 찾을 수 있는지 키워드를 알려드릴게요. 그래야 더 많은 것을 얻으실 수 있으니까요.

질문1은 자바에서 static 필드에 대한 문법과, static 키워드를 사용하는 필드와 사용하지 않는 필드의 차이를 이해해야 합니다. 추가로 메소드 영역, 힙 영역에 대해서 공부해보시면 답을 찾으실 수 있을거에요.

질문2는 자바 언어에서 private, final이 어떤 역할을 하는지 각각 따로 학습해보시면 됩니다. 그리고 둘다 사용한다는 뜻은 그 두 기능을 모두 합쳐서 사용한다고 이해하시면 됩니다.

감사합니다.

후추후추님의 프로필 이미지
후추후추

작성한 질문수

질문하기