>  기사  >  백엔드 개발  >  C#의 힙 및 스택 소개

C#의 힙 및 스택 소개

巴扎黑
巴扎黑원래의
2017-09-06 11:16:001684검색

1.힙이란 무엇인가요?

  힙은 특정 유형의 데이터 개체를 저장하기 위해 큰 메모리 블록을 할당할 수 있는 메모리 영역입니다.
  2. 프로그램이 힙에 저장한 데이터는 명시적으로 삭제할 수 없습니다.

  3. CLR의 자동 GC(가비지 수집기)를 사용하여 소유되지 않은 힙 개체를 판단하고 자동으로 지운 다음 해제합니다. 해제됨 객체 메모리를 재사용할 수 있습니다.

2. 스택이란 무엇입니까?

   스택은 메모리 배열이며 후입선출 데이터 구조입니다.

  여러 데이터 유형:

  1. 특정 유형의 변수 값

  2. 프로그램의 현재 실행 환경;

  3. 메소드에 전달 매개변수 제공

몇 가지 공통 특징:

  1. 데이터는 스택 상단에서만 삽입 및 삭제할 수 있습니다.

  2. 스택 상단에 데이터를 넣는 것은 푸시가 됩니다. ;

  3. 스택의 맨 위에서 데이터를 삭제합니다.

3. 스택과 힙의 차이점은 무엇인가요?

   1. 저장되는 데이터의 종류가 다릅니다.

   2. 스택은 위에서부터 삽입 및 삭제만 가능하며, 힙은 순서에 상관없이 저장 및 제거가 가능합니다. 관리 대상이며 GC에서 관리하지 않습니다. 스택의 맨 위 요소가 모두 사용되면 즉시 해제됩니다. 힙은 GC(가비지 수집: 가비지 수집기)로 정리해야 합니다.

   4. 스택은 시스템에 의해 자동으로 할당되며 속도가 더 빠릅니다. 그러나 통제가 없습니다. 힙은 new에 의해 할당된 메모리 블록입니다. 컴파일러는 해당 릴리스에 대해 신경 쓰지 않습니다. 이는 일반적으로 느리고 메모리 조각화가 발생하기 쉽습니다.

위 내용은 C#의 힙 및 스택 소개의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.