inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

JAVA Scanner

137

김민식

작성한 질문수 2

0

package bufferTest;

 

import java.util.Scanner;

 

public class BufferTest {

public static void main(String[] args) {

Scanner scan = new Scanner(System.in);

 

 

 

String a = scan.next();

 

String[] arr1 = {"a"};

 

System.out.println(System.identityHashCode(a));

System.out.println(System.identityHashCode(arr1[0]));

 

}

}

 

 

왜 arr[0]과 a의 주소 값이 다른가요..???

답변 주시면 정말 감사하겠습니다!

java scanner

답변 1

0

인프런 AI 인턴

안녕하세요, 인프런 AI 인턴입니다.

System.identityHashCode() 함수는 객체의 System Identity Hash Code 값을 반환하는데, 이는 객체마다 다른 값을 가집니다. Java에서 String은 immutable(불변)한 객체입니다. scan.next()를 통해 받은 입력 값 a는 새로운 String 객체를 생성하고, 이 객체는 arr1[0]에 저장된 문자열 “a”와 독립적입니다. 즉, 두 문자열이 내용은 같지만 실제로는 메모리 상에서 두 개의 서로 다른 객체로 존재합니다. 그래서 System.identityHashCode()의 결과가 서로 다릅니다.

만약 두 값이 같게 나오길 원한다면, 어떤 방식으로든 두 참조가 같은 객체를 가리키도록 해야 합니다. 예를 들어, 문자열 풀(String Pool)을 이용하거나, 같은 객체 참조를 직접 할당하는 방법이 있죠.

답변이 도움이 되셨길 바랍니다. 추가적인 궁금증이 있으시면 문의해 주세요. 감사합니다!

XAMPP에서 Apache, DB 재기동 시 접속안되는 문제

0

7

1

실습 권한이 없네요··· 이건 ··· 좀··· 401 에러떠요

0

13

1

inheritance startegy 선택시 고려사항

0

13

1

[할인쿠폰] 코테의 바이블[JAVA] 50% 할인 쿠폰 관련

0

17

1

Entity 동등성 비교

0

14

1

패키지 구분에 대해 궁금한게 있습니다

0

20

2

안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.

0

21

1

갑자기 채점 사이트가 바뀌었어요

0

29

1

문제 리스트 페이지

0

25

1

part8 Notion 링크

0

28

1

채점 사이트 관련 질문드립니다

0

23

1

인텔리제이 MCP 서버 설정 관련

0

34

2

조회속도 개선에서 더 개선하는 방법이 궁금합니다.

0

34

2

필기자료 사라졌나요?(실기 일주일만에 안돼서 재도전-_-)

0

42

2

질문있습니다

0

28

1

1번 문제 질문입니다.

0

33

1

26년 1회 실기 해설 강의

0

59

2

음악플레이어 문제 중 코드질문

0

27

1

잠겨버린 사물함 시간초과 관련 질문입니다.

0

28

1

도메인 모델에서 관계와 규칙을 구분하는 방법

0

43

2

프로젝트 질문 문의

0

47

1

문제와 풀이4 문제점

0

45

2

DDD 는 마이바티스와 잘 맞지 않는건가요?

0

50

1

스프링부트 버전 문의드립니다.

0

40

1