강의

멘토링

로드맵

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

parkhs님의 프로필 이미지
parkhs

작성한 질문수

예제로 배우는 스프링부트 입문

(03) Annotation으로 DI 사용하기

if(member1 == member2)의 의미를 정확히 모르겠습니다.

작성

·

291

0

안녕하세요!

@Autowired에 의해 각각 생성된 것이니

member1이 가리키는 것과 member2가 가리키는 것은 서로 다른 것으로 알고있습니다.(내용은 같지만, 객체 주소는 다른.. 느낌?)

첨부한 사진처럼 개념 관계도가 성립하는 것 같은데,

if(member1 == member2)의 의미를

member1.name == member2.name 

and

member1.nickname == member2.nickname

라고 해석해도 될까요??

코드에서는 동일한 객체라고 나오는데 사실 왜 동일한지 잘 모르겠습니다. 위는 제가 임의로 해석한 것입니다.

퀴즈

42%나 틀려요. 한번 도전해보세요!

의존성 주입(Dependency Injection, DI)의 가장 기본적인 개념은 무엇일까요?

객체가 자신이 필요한 다른 객체를 직접 생성한다

객체가 필요한 다른 객체를 외부(컨테이너)로부터 주입받는다

객체가 자신의 기능을 다른 객체에게 제공한다

객체가 필요한 다른 객체의 생명주기를 관리한다

답변 2

2

이재환님의 프로필 이미지
이재환
지식공유자

스택에 생성된 객체변수는 힙에 생성된 객체를 참조하고 있는데 그 참조값을 저장하고 있습니다.

그러므로 if(member1 == member2) 는 힙에 생성된 객체의 참조아이디(쉽게 얘기하면 저장된 주소)를 비교하는 것입니다.

같은 주소값을 가지고 있다면 같은 객체를 참조하고 있는 것이므로 동일한 객체를 참조하고 있는 것입니다.

객체안의 내용을 비교하고 싶다면 member1.equals(member2) 이런식으로 비교해야 합니다.

0

parkhs님의 프로필 이미지
parkhs
질문자

감사합니다. 이해했습니다!

parkhs님의 프로필 이미지
parkhs

작성한 질문수

질문하기