JAVA Scanner
138
작성한 질문수 2
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의 주소 값이 다른가요..???
답변 주시면 정말 감사하겠습니다!
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
System.identityHashCode() 함수는 객체의 System Identity Hash Code 값을 반환하는데, 이는 객체마다 다른 값을 가집니다. Java에서 String은 immutable(불변)한 객체입니다. scan.next()를 통해 받은 입력 값 a는 새로운 String 객체를 생성하고, 이 객체는 arr1[0]에 저장된 문자열 “a”와 독립적입니다. 즉, 두 문자열이 내용은 같지만 실제로는 메모리 상에서 두 개의 서로 다른 객체로 존재합니다. 그래서 System.identityHashCode()의 결과가 서로 다릅니다.
만약 두 값이 같게 나오길 원한다면, 어떤 방식으로든 두 참조가 같은 객체를 가리키도록 해야 합니다. 예를 들어, 문자열 풀(String Pool)을 이용하거나, 같은 객체 참조를 직접 할당하는 방법이 있죠.
답변이 도움이 되셨길 바랍니다. 추가적인 궁금증이 있으시면 문의해 주세요. 감사합니다!
3차원 배열의 인덱스 해석 순서와 3중 반복문 순회 메커니즘에 대해 질문드립니다.
0
7
0
인텔리제이 설정 최신화 관련 확인 부탁 드립니다!
0
12
1
띄어쓰기
0
20
2
공부 순서
0
23
2
코딩 문제 사이트 접속 오류
0
19
1
재귀함수 연산법
0
28
2
동일성 동등성
0
20
1
안녕하세요 치킨 디도스 이벤트 보고 흉내내보려 들어왔습니다..
0
26
2
47번 리턴 관련 질문
0
26
1
실무 내용 문의드려요
0
27
2
IO활용-회원관리예제1 샘플코드 문의
0
20
1
join에대해 질문드립니다.
0
22
1
pg사가 있다고 가정하면
0
26
1
중급 1편 학습 방향에 대해 조언 부탁드립니다
0
38
1
To-Do App
0
27
1
강의노트 접속 불가
0
29
2
Kafka Cluster 구성도 질문
0
24
1
26년 1회차 기출 강의
0
60
2
기출문제
0
59
1
정보처리기사 실기 zip
0
46
2
답을언제쯤받아볼수있나요
0
54
2
데이터베이스 노션
0
39
2
형 책 어떻게 받아?
1
60
1
PPT 자료 공유 받을 수 있을까요?
0
32
1





