2014-11-05 4 views
4

다음 코드에서 몇 개의 객체가 생성됩니까?Java : 코드에 몇 개의 객체가 생성됩니까?

String a, b, c; 
a = "1234"; 
b = a; 
c = a + b; 

는 I 때문에 단지 A와 B 지점 자신의 데이터에, 대답은 2입니다 들었다되었다.

cab을 사용하는 경우에만 만들어집니다. 그러나, 변수를 선언하는 행위는 이라고 생각하면이 될까요? 이 질문이 막연한가? 나는 3라고 말했다.

+2

'String a;'를 수행하면 객체는 어디에 있습니까? 'String a = null; '을하면? –

+0

2 객체는 a = "1234"이고 a는 + B – nafas

+0

입니다. @Aamir String은 java – nafas

답변

3

a = "abcd"String 개체를 만들고 값을 "abcd"로 초기화합니다. 그래서 그럼 a + b 다음 c에 할당 된 새로운 객체를 생성합니다,

b = aa과 같은 자리에 b 지점을 만드는 하나의 개체입니다. 그러면 두 개의 객체가 생성됩니다.

+2

저는 이것이 선생님이 찾고있는 것이라고 생각합니다. 학생들은이 단계에서'StringBuilder'로 구현되거나'String'이'char []'에 의해 뒷받침되지 않는다는 것을 알기위한 의도는 없습니다. –

0

나는 대답이 2라고 생각한다. b = a 일 때, 실제로는 a에 대한 참조가있다. 이클립스에서 프로그램을 디버깅 할 때, a와 b는 같은 id를가집니다. 실제로 하나의 Object입니다.

+0

은 이미 언급했습니다. a + b는 StringBuilder 유형의 다른 객체를 만듭니다. – nafas

관련 문제