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 | 31 |
Tags
- 크롬브라우저
- 단축키정리
- MVC #디자인패턴
- 개발자가 되기 위해 꼭 알아야 하는 IT용어
- 머신러닝 #학습내용정리
- Numpy #TIL #넘파이 기초
- 그룹핑
- 생성자 #자바 #기록남기기
- 옵셔널태그
- 공부내용정리
- 스프링부트
- 클래스 #아이디
- 파이썬
- 컬럼수정
- C언어 #문자열변환 #정수형변환
- SQL
- COMMIT
- 커밋
- scanf
- group by
- 에러포스팅
- 개발공부
- GIT
- 머신러닝 #회귀 #규제
- SafeUpdate
- 스프링 입문
- 기록하기
- 김영한 #SOLID #객체지향
- MODIFY
- 작업 영역
Archives
- Today
- Total
데이터 분석가 몽구리
자바 메모리 구조와 static 본문
자바의 메모리 구조는 메서드 영역, 스택 영역, 힙 영역 3개로 나눌 수 있다.
메서드 영역: 클래스 정보를 보관한다. 이 클래스 정보를 붕어빵 틀이라고 할 수 있다.
스택 영역: 실제 프로그램이 실행되는 영역이다. 메서드를 실행할 때마다 하나씩 쌓인다.
힙 영역: 객체(인스턴스)가 생성되는 영역이다. new 명령어를 사용하면 이 영역을 사용한다. 붕어빵 틀로부터 생성된 붕어빵이 존재하는 공간이다. 참고로 배열도 이 영역에 생성된다.
메서드 영역(Method Area) : 메서드 영역은 프로그램을 실행하는데 필요한 공통 데이터를 관리한다. 이 영역은 프로그램의 모든 영역에서 공유한다.
- 클래스 정보: 클래스의 실행 코드(바이트 코드), 필드, 메서드와 생성자 코드 등 모든 실행 코드가 존재한다.
- static 영역: static 변수들을 보관한다.
- 런타임 상수풀: 프로그램을 실행하는데 필요한 공통 리터럴 상수를 보관한다.
스택 영역(Stack Area): 처음에는 main메서드가 실행되고 그 다음을 실행되는 메서드가 쌓이게 된다. / 하나의 실행 스택이 생성된다. 각 스택 프레임은 지역변수, 중간 연산 결과, 메서드 호출 정보 등을 포함한다.
- 스택 프레임: 스택 영역에 쌓이는 네모 박스를 하나의 스택 프레임이라고 한다. 메서드를 호출할 때마다 하나의 스택 프레임이 쌓이고, 메서드가 종료되면 해당 스택 프레임이 제거된다.
힙 영역(Heap Area): 객체(인스턴스)와 배열이 생성되는 영역이다. 가비지 컬렉션이 이루어지는 주요 영역이며, 더 이상 참조되지 않는 객체는 GC에 의해 제거된다.
| 참고: 스택 영역은 각 쓰레드별로 하나의 실행 스택이 실행된다. 따라서 쓰레드 수 만큼 스택 영역이 생성된다.
'Java' 카테고리의 다른 글
[Java] 인터페이스 다중 구현 이해하기 (0) | 2024.06.17 |
---|---|
final 변수와 상수 (0) | 2024.03.30 |
캡슐화 (0) | 2024.03.24 |
접근제어자 (0) | 2024.03.24 |
제네릭과 컬렉션 (0) | 2024.01.26 |