23-2다음 Java 프로그램을 실행했을 때의 출력 결과를 적으시오.p… | 2023년 정보처리기사실기 2회차 기출문제 상세 페이지
1
23-2
다음 Java 프로그램을 실행했을 때의 출력 결과를 적으시오.
public class Main {
public static void main(String[] args) {
String p = "kiwi";
String q = new String("kiwi");
String r = "kiwi";
String s = q;
System.out.println(p == q);
System.out.println(q == s);
System.out.println(r.equals(q));
System.out.println(p == r);
}
}해설
false
true
true
true
[해설]
==는 두 변수가 같은 객체를 가리키는지(참조)를, equals()는 문자열 내용이 같은지를 비교한다.
- p == q: p는 문자열 상수 풀의 "kiwi", q는 new로 만든 별도 객체 → false
- q == s: s = q로 같은 객체를 받았으므로 → true
- r.equals(q): 내용이 둘 다 "kiwi" → true
- p == r: 같은 리터럴은 상수 풀의 한 객체를 공유 → true
따라서 출력은 차례로 false, true, true, true이다.
내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.