2012년 10월 30일 화요일

OCJP 문제풀이 - Question 33


QUESTION 33
Given:

StringBuilder sb1 = new StringBuilder("123");
String s1 = "123";
// insert code here
System.out.println(sb1 + " " + s1);

Which code fragment, inserted at line 24, outputs "123abc 123abc"?

A. sb1.append("abc"); s1.append("abc");
B. sb1.append("abc"); s1.concat("abc");
C. sb1.concat("abc"); s1.append("abc");
D. sb1.concat("abc"); s1.concat("abc");
E. sb1.append("abc"); s1 = s1.concat("abc");
F. sb1.concat("abc"); s1 = s1.concat("abc");
G. sb1.append("abc"); s1 = s1 + s1.concat("abc");
H. sb1.concat("abc"); s1 = s1 + s1.concat("abc");

Answer: E
Section: All

Explanation/Reference:

A : String에는 append함수가 없으므로 컴파일 에러
B : "123abc 123" 출력. s1.concat("abc") 는 s1에 직접적으로 영향을 미치지 못하고,
      s1 = s1.concat("abc") 하여 return 값을 받아야 "123abc 123abc" 가 출력되게 된다.
C, D, F. H : StringBuilder에는 concat 함수가 없으므로 컴파일 에러
G : "123abc 123123abc" 출력. B 참고.

블로그 보관함