메모리 할당과 바인딩을 많이들 헷갈려 한다. 사실 필자도 "메모리 할당과 바인딩은 다른것이다."라는 생각을 가지고 포스팅을 하기 위해 공부를 하기 전에는 몰랐다. 따라서 이 글에서는 두 개념의 차이를 설명하도록 하겠다.
공부하기전에 잘못 알고있던 사실들
메모리 할당은 말 그대로 메모리를 확보하는 것이다. 메모리 할당에서는 정적 메모리 할당과 동적 메모리 할당 두가지가 있다.
메모리 할당
1. 정적 메모리 할당 : static영역에 변수 또는 객체를 통해 메모리를 확보하는 것이다.
2. 동적 메모리 할당 : new연사자를 통해 heap영역에 객체를 등록하여 메모리를 확보하는 것이다
바인딩은 heap영역에 생성한 객체를 포인터 또는 참조변수로 가르키는 것을 말한다.
바인딩
정적 바인딩 : 자신의 타입으로 객체를 가르키는것
동적 바인딩 : 부모의 타입으로 객체를 가르키는것
공부한 후
메모리 할당 : 말 그대로 메모리를 확보하는것.
바인딩 : 변수에 변수와 관련된 속성을 연관시키는 과정.
정적 메모리 할당 : stack영역에 메모리를 확보하는 것. ex) int data; Object ob;
정적 바인딩 : 해당 변수에 변수와 관련된 값을 저장하는 것. ex) int data = 5;
동적 메모리 할당 : heap영역에 메모리를 확보하는 것. ex) java : new Object(); c: calloc(1, sizeof(int));
동적바인딩 : 참조변수 또는 포인터로 힙영역의 객체를 연결시켜주는 것을 ex) Object ob = new Object();
'기타' 카테고리의 다른 글
프로젝트로 공부하기 (0) | 2018.11.06 |
---|---|
자기개발 방법 (0) | 2018.11.06 |
컴퓨터 언어의 흐름 (0) | 2018.09.12 |
논리연산과 비트논리연산 (0) | 2018.08.21 |
도움이 되는 글 링크 (0) | 2018.08.20 |