Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- static
- 웹스토리지 사용법
- 네트워크
- 형변환
- 엔티티설계
- 한번에insert하기
- 코린이
- qclass
- 0으로변환
- 프로젝트
- Git
- 스프링시큐리티
- java기초
- 생성자
- 오버라이딩
- MySQL
- 레포지토리설계
- 웹동작방식
- http
- 파비콘에러
- 스프링부트
- 자바
- 메소드
- 상속
- git commit취소
- 다운캐스팅
- 기초
- java
- 업캐스팅
- JPA
Archives
- Today
- Total
딱콩이의 봄
JAVA 메모리 모델 본문
✔️Java의 JVM이 관리하는 메모리 공간은 크게 3가지 영역으로 나눌 수 있습니다.
- 스택 영역(Stack Area): 지역변수(Local Variable), 매개변수(Parameter)가 할당되는 영역으로 초기화가 진행되지 않습니다.
- 힙 영역(Heap Area): 배열과 모든 인스턴스 객체가 할당되는 영역으로 자동 초기화가 진행됩니다.
- 스태틱 영역(Static Area) 또는 메서드 영역: 메서드의 바이트 코드, static변수가 할당됩니다.
💡 스택
- 정적 메모리 할당
- 함수의 호출과 관계되는 지역변수와 매개 변수가 저장되는 영역
- 함수의 호출과 함께 할당되며, 함수의 호출이 완료되면 소멸
- 푸시(push)동작으로 데이터를 저장하고, 팝(pop) 동작으로 데이터를 인출
- 후입 선출(LIFO, Last-in-First-Out) 방식
- 메모리의 높은 주소에서 낮은 주소의 방향으로 할당
😍장점
- 액세스가 빠르다(할당, 해제가 빠르다)
- 변수를 명시적으로 할당, 해제할 필요가 없다.
😒단점
- 메모리 크기 제한
- 지역변수만 가능
💡힙
- 동적 메모리할당
- 사용자가 직접 관리할 수 있는 '해야만 하는' 메모리 영역
- 사용자에 의해 메모리 공간이 동적으로 할당되고 해제됨
- 메모리의 낮은 주소에서 높은 주소의 방향으로 할당
😍장점
- 변수를 전역적으로 액세스 할 수 있다.
- 메모리 크기 제한이 없다
😒단점
- 상대적으로 액세스가 느리다( 할당, 해제가 느리다)
- 메모리를 관리해야 한다.(변수를 할당하고 해제하는 책임이 있다.)
🧐Reference
'개발 > JAVA' 카테고리의 다른 글
static & final 💡💡 (0) | 2022.08.29 |
---|---|
static & final💡 (0) | 2022.08.29 |
this() Constructor (0) | 2022.08.29 |
생성자 오버로딩(Constructor Overloading) (0) | 2022.08.29 |
디폴트 생성자(Default Constructor) (0) | 2022.08.29 |
Comments