inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

JAVA Scanner

141

김민식

작성한 질문수 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)을 이용하거나, 같은 객체 참조를 직접 할당하는 방법이 있죠.

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

파이썬 추가 코드

0

14

1

배열 포인터 출력 표시

0

38

1

포인터 증감 또는 값 증감

0

33

1

배열 포인터 함수 관련

0

35

1

EmailSender 관련 문의

0

36

1

실기 이론 통합 요약본 버전

0

47

2

업캐스팅 3번 문제 예시

0

49

2

구글드라이브 접속 불가

0

48

2

2024년2회15~20

0

39

1

낙관적락 질문있습니다.

0

43

1

push pop 설명 되어있는 강의가 몇강인가요?

0

47

1

댓글순서부여방식

0

43

1

movablePageCount와 pageSize 상수

0

36

1

JPA와 네이티브 쿼리

0

41

1

조회 메서드 네이밍 질문

0

54

1

소스파일

0

41

1

강의 판서 자료

0

53

2

모의고사 파일오류

1

78

3

Properties 설정이 추가되었는데

0

37

1

모의고사 다운

0

53

1

업캐스팅 원칙

0

66

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

83

2

11강 [실습] Docker로 MySQL1 분만에 실행하기

0

63

2

6분46초

0

58

2