모두CBT

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이다.

내용에 오류가 있거나 최신 법령·기준과 다른 부분이 보이면 알려주세요. 확인 후 반영하겠습니다.