hyeonga_code
Java_07_자바 메모리, Stack_스텍, Heap_힙, CPU, Constant Pool_상수, String Constant Pool, UML_Unified Modeling Language 본문
Java_07_자바 메모리, Stack_스텍, Heap_힙, CPU, Constant Pool_상수, String Constant Pool, UML_Unified Modeling Language
hyeonga 2023. 9. 10. 05:59- Java Memory
- Stack
- 기본형 데이터가 저장됩니다.
- 메모리 용량에 영향을 받습니다.
- 중괄호를 통해 영향을 끼치는 범위를 지정합니다.
- 변수에 저장된 실제 값이 저장됩니다.
- Heap
- 참조형 데이터가 저장됩니다.
- 메모리 용량에 영향을 받지 않습니다.
- Stack은 변수의 값이 저장된 Heap의 주소 값을 가집니다.
- 변수에 저장된 실제 값은 Heap에 저장되어 있습니다.
- 실제값이 저장된 Heap의 주소값이 Stack에 저장되어 있습니다.
- CPU는 Stack에 들어있는 값을 기준으로 작동합니다.
- 그러나 Stack 공간은 크기가 보다 작습니다.
- 최근 자주 사용되는 값들을 Stack에 저장할 수 없습니다.
- Heap 공간으로 제한이 없는 크기로 어떠한 수도 저장할 수 있습니다.
- Stack 공간에 값이 저장된 Heap 공간의 주소값을 저장하여 불러내어 사용할 수 있도록 합니다.
- Method = Static
- 프로그램이 종료될 때까지 메모리에 남아있습니다.
- file data_필드 데이터 : 멤버 변수 이름, 타입, 접근 제어자 등의 메타 정보
- method data_메소드 데이터 : 메소드 이름, 리턴 타입, 매개 변수, 접근 제어자의 메타 정보
- constructor_생성자 : 생성자 메소드에 관한 정보
- Static 변수_Class 변수 : 모든 객체가 공유할 수 있는 정적 클래스 변수
- constructor_생성자 : 생성자 메소드에 관한 정보
- Constant Pool_상수
- 선언부에서 왼쪽에서 오른쪽으로 실행합니다.
- 대입 연산자의 왼쪽 부분의 연산을 Constant Pool에 저장합니다.
- 이미 저장되어 있는 값이 있다면 다시 저장하지 않고 기존의 값을 가져다 사용합니다.
- 대입 연산자의 오른쪽의 변수에 Constant Pool에 저장된 값의 주소를 저장합니다.
- 데이터 타입은 부가적인 설명입니다.
- 약 1GB 정도 제공됩니다.
- String Constant Pool
- 문자열을 저장하는 공간입니다.
- 문자 하나가 추가될 때마다 새로 저장됩니다.
- '1', '1을', '1을 2', '1을 2와 더하면', '1을2와 더하면 3'
- 약 1GB 정도 제공됩니다.
- 수동으로 선언하는 경우 이 공간에 저장되지 않고 바로 Heap 공간에 저장됩니다.
- 같은 값이라도 주소가 다르므로 false가 반환됩니다.
- 불변형_값이 지워지지 않으므로 데이터 쓰레기 값이 축적됩니다.
- Heap 공간에 바로 저장하는 것이 좋습니다.
- UML_Unified Modeling Language_통합 모델링 언어
- 개발자 간의 의사소통을 원활하게 하기 위해 표준화한 모델링 언어입니다.
- 문제를 시각화하여 간단하게 요약하는 방법입니다.
'Java' 카테고리의 다른 글
Java_09_EditPlus 문서 편집기로 자바 파일 작성하기 (0) | 2023.09.12 |
---|---|
Java_08_프롬프트에서 실행하기 (0) | 2023.09.11 |
Java_06_자바 기본 구문 (0) | 2023.09.09 |
Java_05_시작하기 프로젝트, 패키지, 클래스, 기본 출력, 저장하기, 프로젝트 이름 변경, 이클립스로 자바 실행 (0) | 2023.09.08 |
Java_04_Java Platform, JCP, 자바 이클립스 설치, 이클립스 연동, 환경 설정하기 (0) | 2023.09.07 |