-
카테고리
-
세부 분야
프로그래밍 언어
-
해결 여부
해결됨
문자열 비교 질문
22.12.21 15:28 작성 조회수 253
1
코드 내에서 s1 이 "1234"이고, s2 가 "1234" 라면 같은 메모리에서 참조되는 것이어서
== 이 같다라고 인식된다면 ==는 주소값을 기준으로 판단하는 것인가요?
답변을 작성해보세요.
2
나도코딩
지식공유자2022.12.22
안녕하세요?
나도코딩입니다. ^^
말씀해주신 부분이 맞습니다.
String s1 = "1234";
String s2 = "1234";
와 같이 하게 되면 메모리 공간에 "1234" 가 하나만 생성되며 s1, s2 변수는 동일한 위치를 참조하게 됩니다. 그리고 == 연산자를 사용하여 둘을 비교하게 되면 이들이 참조하고 있는 메모리 주소값을 기준으로 판단하며 예제의 경우 같은 곳을 참조하기 때문에 true 가 됩니다.
String s1 = new String("1234");
String s2 = new String("1234");
와 같이 하게 되면 메모리 공간에 서로 다른 "1234" 가 각각 생성되며 s1, s2 변수는 서로 다른 위치를 참조하게 됩니다. 그래서 == 연산을 통한 비교 결과는 false 가 됩니다.
감사합니다.
답변 1