힙과 스택의 차이점:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!