4.1) OCJP/1Z0-851 / 2012-08-28

OCJP (1Z0-851 / 2012-08-28 / Exam A) - 25 번

kkikkodev 2015. 7. 14. 16:10



관련 이론 및 문법

(String 클래스 참고)

http://kkikkodev.tistory.com/100


문제 의도

주어진 소스코드를 컴파일하여 실행하면 어떤 결과가 나오는지 고르는 문제입니다.


답안


풀이 방법

3 라인에서, String 클래스형으로 str 이라는 인스턴스 변수를 선언함과 동시에, "420" 이라는 문자열 값으로 초기화하고 있습니다. 이는, "420" 이라는 값을 가지는 인스턴스를 만들었다고 생각하면 됩니다. (char 배열) 4 라인에서는, 이 str 변수에 42 값을 더해서 누적하고 있습니다. String 클래스에서는, + 연산자가 문자열 뒤에 덧붙이는 효과를 냅니다. 따라서, "420" 이라는 기존의 char 배열을 변경하지는 못하니, 새로 char 배열을 만들어서 먼저, "420" 값을 그곳에 복사하고, 그 뒤에, 42 값을 "42" 의 문자열의 형태로 변환하여 덧붙입니다. 즉, 새로운 char 배열에 "42042" 값이 들어가 있는 것입니다. 이제, = 연산자를 통해서, 기존 char 배열을 제거하고, str 변수가 새 char 배열을 인식하게 합니다. 5 라인에서, 이 str 를 출력하게 되면, 42042 가 화면에 출력되게 되고, 답안은 D 가 됩니다.