안녕하세요!
오늘도 게임개발자가 되기위해 공부하고 있는 구구입니다.
오늘은 갓생살기 22일차가 되는날입니다.
오늘은 어제 나온 boxing과 unboxing에 대한 이야기를 이어나가 보겠습니다.

어제 이야기하던 코드와 코드에 관한 해석을 다시 한번 언급해보도록하겠습니다.

i에 123이 스택영역에 저장됩니다.
그리고 object o에 i가 저장됩니다.
그렇게되면 o는 int형의 123이라는 값이저장되는데 이때 값이 힙 영역에 저장됩니다.
위에서 100 200이 저장되었던 방법처럼
힙 영역
int
123
과같이 저장이 될 것입니다.
이와같이 힙 영역에 저장하게 되면서 boxing이 발생하게 됩니다.
그리고 이는 힙 영역에 메모리가 생기는 것이기에 무거운 과정(성능이 떨어지는 과정)이고 불필요한 메모리를 차지하게 됩니다.
그리고 int j = (int)o; 에서 o를 캐스팅 연산을 통해 o를 int형으로 강제로 바꿉니다.
그렇게되면 힙 영역에 저장된 int 123을 풀게되고 j에 123을 저장하게 됩니다.
이 과정을 unboxing이라고 합니다. 하지만 unboxing도 무거운 과정이기에
boxing과 unboxing 둘다 최소한으로 해주는 것이 좋습니다.
결과는 다음과 같습니다.

이처럼 i와 o는 서로 가리키는 값은 달랐기 때문에 i값을 456으로 바꾼다고 해도 j에는 영향이 없었습니다.
이번에는 Console.ReadLine()에 대해 알아보도록하겠습니다.
지금까지 한 내용들은 코드를 출력하는 Console.WriteLine()을 통해서 출력만 해봤지만
이번에는 입력도 받아보도록 하겠습니다.
이때 Console.ReadLine()은 한번에 한줄씩 문자열(숫자도 문자열로 받음)로 입력받습니다.

위 코딩에서 Console.ReadLine은 string으로 받기 때문에
string inputNum = Console.ReadLine();
과 같이 코딩이 되었습니다.
그리고 입력한 수가 string으로 저장되어있기 때문에
이를 int형으로 바꿔주기 위해 Parse를 이용합니다.

좀 더 응용해보겠습니다.


여기서 중요한점은 입력받은값이 String이기 때문에 int로 바꿔주고 연산을 해야한다는 점입니다.
오늘은 여기까지 하도록 하겠습니다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성되었습니다.
'게임 개발 공부 > 패스트 캠퍼스 이벤트' 카테고리의 다른 글
패스트캠퍼스 챌린지 24일차 (0) | 2021.11.24 |
---|---|
패스트캠퍼스 챌린지 23일차 (0) | 2021.11.23 |
패스트캠퍼스 챌린지 21일차 (0) | 2021.11.21 |
패스트캠퍼스 챌린지 20일차 (0) | 2021.11.20 |
패스트캠퍼스 챌린지 19일차 (0) | 2021.11.19 |
댓글