count는 Connection 클래스의 멤버변수이기 때문에 힙 영역에 저장되는 것 아닌가요? 해설지에는 스택 영역에 표시되어 있어서 질문드립니다.
안녕하세요 길벗수험서 운영팀입니다.
객체 변수를 생성한다는 것은 Connection _inst = new Connection( );과 같이 객체 생성 예약어인 new를 통해 heap 영역에 공간을 확보하여
Connection 클래스의 내용을 저장한 후 그 주소를 객체 변수에 저장하는 것인데,
private static Connection _inst = null; 이코드에서는 객체 생성 예약어인 new가 생략되었으므로 생성이 아닌 선언만 하는것입니다.
객체 변수를 선언만 하게 되면 heap이 아닌 stack 영역에 내용 없이 저장되어 사용이 불가능합니다.
이후 _inst = new Connection( ); 이코드처럼 객체 생성 예약어인 new가 사용되어야만 heap 영역에 내용이 저장되고
그 주소도 객체 변수에 전달되면서 사용 가능한 객체 변수가 됩니다.
행복한 하루되세요 :)
-
관리자2025-04-17 11:18:37
안녕하세요 길벗수험서 운영팀입니다.
객체 변수를 생성한다는 것은 Connection _inst = new Connection( );과 같이 객체 생성 예약어인 new를 통해 heap 영역에 공간을 확보하여
Connection 클래스의 내용을 저장한 후 그 주소를 객체 변수에 저장하는 것인데,
private static Connection _inst = null; 이코드에서는 객체 생성 예약어인 new가 생략되었으므로 생성이 아닌 선언만 하는것입니다.
객체 변수를 선언만 하게 되면 heap이 아닌 stack 영역에 내용 없이 저장되어 사용이 불가능합니다.
이후 _inst = new Connection( ); 이코드처럼 객체 생성 예약어인 new가 사용되어야만 heap 영역에 내용이 저장되고
그 주소도 객체 변수에 전달되면서 사용 가능한 객체 변수가 됩니다.
행복한 하루되세요 :)
-
이*인2025-04-17 11:37:23답변 감사합니다. 그럼 new Connection을 하기 전에는 count가 스택 영역에 선언되어 있다가, new Connection을 하면 count가 힙 영역에도 저장되는건가요?