안녕하세요.
Java 공부중에 친구와 논쟁(?)을 한 부분이 있어 질문 올립니다.
저는 평소에 C++를 사용하다가 Java로 슬슬 옮겨가는 중입니다.
C++에서는 분명 아래와 같은 코드가 에러인 것으로 알고 있는데,
(반환시에 지역변수 c1의 깊은 복사가 이뤄지지 않을 뿐더러, methodC2를 벗어날 때, c1이 자동으로 소멸되기 때문에)
제 친구는 Java는 어떠한 객체라도 참조하고 있는 변수가 하나라도 있으면 소멸이 이뤄지지 않아 에러가 아니라고 합니다.
어떤 것이 맞는 것인가요??
class C1{
String name;
}
class C2{
C1 methodC2()
{
C1 c1;
return c1;
}
}