>일반적인 문제 >스택 차이

스택 차이

藏色散人
藏色散人원래의
2019-06-03 14:07:3027383검색

스택 차이

힙과 스택의 차이점:

1. 스택 공간 할당의 차이점:

1. 스택(운영 체제): 운영 체제에 의해 자동으로 할당 및 해제되며 함수 매개변수 값을 저장합니다. ​​및 지역 변수 값 등

2. 힙(운영 체제): 일반적으로 프로그래머가 할당하고 해제하지 않으면 OS에서 재활용할 수 있습니다. 프로그램이 종료됩니다. 할당 방법은 연결 목록과 유사합니다.

2. 스택 캐싱 방법의 차이점:

1. 스택은 일반적으로 호출 시 저장 공간에 있으며 호출이 완료된 후 즉시 해제됩니다. 두 번째 수준 캐시에 저장됩니다. 캐시에서 수명 주기는 가상 머신의 가비지 수집 알고리즘에 의해 결정됩니다. 개체가 고아가 되면 재활용될 수는 없습니다. 따라서 이러한 개체를 호출하는 속도는 상대적으로 느립니다.

힙: 메모리에는 참조 데이터 유형의 크기를 결정할 수 없습니다. 실제로 힙은 메모리의 분산된 공간을 사용하는 저장 공간입니다. 참조 유형의 크기에 따라 직접 결정되며 참조 유형의 크기 변경은 힙의 변경에 직접적인 영향을 미칩니다.

스택: 크기가 2M를 초과하면 오류가 발생합니다. 보고되고 메모리가 오버플로됩니다

3. 스택 데이터 구조의 차이점:


Heap(데이터 구조): 힙은 다음과 같이 트리로 간주될 수 있습니다.

Stack(데이터 구조) ): 선입 후출 데이터 구조입니다.

기능: 선입, 최후

선입, 최후의 경우 Linklist의 기본 구현은 연결 목록 구조이므로 Linklist를 사용하여 선입, 최후가 무엇인지 탐색합니다.

코드는 다음과 같습니다.

package com.zking.list;
 
import java.util.LinkedList;
 
public class Linklisttest {
 
public static void main(String args[]) {
LinkedList ll = new LinkedList();
for (int i = 0; i < 5; i++) {
ll.addFirst(i);
}
 
ll.removeFirst();
 
for (Object object : ll) {
System.out.println(object);
}
 
}
 
}
작업 결과:

스택 차이이 간단한 예에 따르면 for 루프를 통해 컬렉션에 데이터를 추가하는 순서는 0, 1, 2, 3, 4임을 알 수 있습니다. ,

delete 메소드가 실행되면 4가 삭제되고, 최종적으로 순회 결과는 3, 2, 1, 0

이 되어 스택의 특성인 First In, Last Out을 반영합니다. .

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

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