안녕하세요.
private void aa(string id)
{
id = "222";
}
string test = "111";
aa(aa);
위와 같이
test라는 문자열 변수를 aa메서드에 파라메터로 넘길때 저는
문자열은 불변 이기때문에 test와 동일한 값을 가지는 새로운 String객체가 생성되고
새로운 String객체에 "222"라는 값이 할당 된다고 생각하고 있었습니다.
위와 같이 생각하고 있는 제가 잘못 생각하고 있었던 건가요??
다른 의견이
String 클래스를 포함해서 모든 클래스 인스턴스들은 참조값이 넘어가고
그 과정에서 주소값만 복사될 뿐 새로운 동일 타입 인스턴스가 생성되는건 아니라고 해서
어떤게 맞는 말이고, 메모리에 어떻게 할당되어 동작되는지 궁금합니다.
답변 부탁드립니다.
[최초 등록일: ]
[최종 수정일: 11/13/2019]