정보처리기사 실기JavaJava 참조난이도 2MCQ

정보처리기사 실기 Java 참조 기출문제 #3885

문제

다음 Java 코드의 출력 결과는?

Java
public class Main { public static void change(String[] data, String s){ data[0] = s; s = "Z"; } public static void main(String[] args) { String data[] = { "A" }; String s = "B"; change(data, s); System.out.print(data[0] + s); } }

① AB ② BB ③ BZ ④ ZZ

정답

2

해설

정답: 2. 배열 객체의 0번 원소는 "B"로 바뀌지만, 매개변수 s에 "Z"를 대입해도 main의 s는 바뀌지 않는다.

오답 풀이

  • 1번: data[0]이 "B"로 변경된 점을 반영하지 않았다.
  • 2번: data[0]은 B, main의 s도 B이므로 정답이다.
  • 3번: 지역 매개변수 s의 변경이 main의 s에 반영된다고 잘못 본 결과이다.
  • 4번: 배열 원소와 main의 s가 모두 Z로 바뀌지 않는다.

보충 개념 Java는 값에 의한 호출을 사용한다. 참조값이 복사되어 전달되므로 같은 객체의 내부 상태는 바꿀 수 있지만, 매개변수 자체를 새 값으로 바꿔도 호출자 변수는 바뀌지 않는다.

정보처리기사 실기 시험 준비 가이드

이런 문제 20~50개를 한 번에 풀어보세요

매번 새로 추가되는 모의고사 + 오답 자동 복습 + 회차별 실력 추적. 회원가입 후 무료 이용.

[정보처리기사 실기] Java 참조 Java 기출 #3885 | 문어CBT