Tags
- yumpackage
- AWS CloudFormation
- Iteration반복문
- cloudfront
- java
- CloudFormation
- 어노테이션
- map
- redis
- Cognito
- 인스턴스
- REST
- Amazon
- instance
- ELB
- list
- spring
- javamap반복
- 자료구조
- rabbitmq설치방법
- Heap
- 차이점
- dynamodb
- rabbitmq설치명령어
- 리눅스rabbitmq설치
- javaIteration
- db
- S3
- jpa
- AWS
https://blog.naver.com/rla8860
- Today
- Total
You are a developer, not a coder.
Stack에 대해서 본문
SMALL
1. Stack의 기본개념
- 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역 이다.
- Stack은 요소를 데이터 구조의 한쪽 단에서만 저장/접근 할 수 있는 컬렉션 이다.
- LIFO (Last - In - First - Out) 즉, 후입선출의 구조로 많이 알려져 있는 컬렉션 이다.
- 가장 최근에 입력된 데이터를 top 이라고 하며, Stack은 top에서만 삽입, 삭제, 읽기 동작이 발생할 수 있다.
- 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸한다.
- Stack 영역에 저장되는 함수의 호출 정보를 스택 프레임 (Stack Frame)라고 한다.
- 컴파일 시에 크기가 결정된다.
2. Java에서의 Stack Method 종류
Method 종류 | 동작 | 설명 |
pop() | Delete, Read | Stack의 맨 위의 객체를 제거하고 그 객체를 반환한다. |
push(data) | Insert | Stack의 맨 위의 객체를 추가한다. |
peek() | Read | Stack 맨 위에 있는 객체를 제거하지 않고, 그 객체를 반환한다. |
Boolean empty() | Stack Values Check | 현재 Stack이 비어 있는지를 확인한다. |
3. Stack 구현 방법 2가지
정적 메모리 할당
장점
- 메모리를 해제하지 않음으로써 메모리 누수와 같은 문제가 발생하지 않는다.
- 정적 할당된 메모리는 실행 도중에 해제되지 않고, 프로그램이 종료할때 운영체제가 자동으로 회수한다.
단점
- 메모리의 크기가 하드 코딩되어 있어서 크기를 변경할 수 가없다.
- Stack은 기본적으로 정적 메모리 할당 이므로, 동적 할당에 비해 할당 받을 수 있는 메모리에 제약을 받는다.
종류
- array를 이용한 구현 방법
동적 메모리 할당
장점
- 메모리를 해제하지 않음으로써 메모리 누수와 같은 문제가 발생하지 않는다.
- 상황에 따라 원하는 크기만큼의 메모리가 할당되므로 효율적이고
이미 할당된 메모리라도 언제든지 크기를 조절 할 수 있다.
단점
- 더 이상 사용하지 않을 때 명시적으로 메모리를 해제해 주어야 한다.
- 메모리가 꽉 찼을시 Exception 떨어지나, 자바는 GC가 해결해 줌으로써 이 단점을 보완하였다.
종류
- LinkedList를 이용한 구현 방법
* 참고
- ArrayList, LinkedList 비교
- JVM 메모리 구조
2020/05/25 - [Backend-Languages/Java] - JVM의 메모리 구조
- Heep
LIST
'Development Basic' 카테고리의 다른 글
Cookie vs Session (0) | 2020.06.03 |
---|---|
Heap에 대해서 (0) | 2020.05.28 |
AWS DynamoDB [StreamViewType] (0) | 2020.02.25 |
REST API에 대해서 (0) | 2020.02.05 |
REST에 대해서 (0) | 2020.02.03 |
Comments