| prosthetics |
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
프로그램이 사용하는 메모리 공간은 Stack, Heap, Static으로 분류가 됩니다.
전역변수의 경우 Static영역에 저장되며
변수 선언서 부터 생성되어 프로그램 종료시 사라집니다.
{...} 이 괄호 안에서 선언한 변수는 Stack에 저장되어, 괄호가 닫힐떄 ( '}' ) 사라집니다.
<C>
동적 할당인 malloc류의 함수를 이용하면 Heap영역에 저장되는데,
이것은 free로 해제를 해주지 않으면 사라지지 않습니다.
<Java>
new 키워드를 통해 생성하는 객체, 배열들은 모두 Heap 영역에 저장됩니다.
Java는 가비지 콜렉션 기능이 있으므로 free가 필요없습니다.
가비지 콜렉션 기능은 사용하지 않는 메모리를 자동으로 수거해주는 기능입니다.
ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ
따라서 배열을 선언했을 경우 컴퓨터에 계속 저장되어 있는 경우도, 저장 되지 않는 경우도 발생하며
계속 저장하지 않도록 없애는 방법도 있습니다.
자세한 내용은
"프로그래밍 언어개념" 이라는 책을 찾아 보시면 "변수의 수명"이라는 파트가 있습니다.
인터넷을 통해 찾아보셔도 됩니다. |
2011/11/09 |
|