2. 자바의 구성 요소
2.1 JDK (Java Development Kit) - 자바 개발 도구
자바 소스 코드를 컴파일
하고, 개발에 필요한 도구를 제공합니다.- 컴파일러인 javac.exe를 포함하며,
자바 소스를 바이트코드로 변환
합니다.
- 컴파일러인 javac.exe를 포함하며,
2.2 JRE (Java Runtime Environment) - 자바 실행 환경
- 자바 프로그램을 실행하기 위한 환경을 제공합니다.
- 자바 프로그램 실행기인 java.exe를 포함하며,
JVM을 실행
합니다.- 자바 바이트코드를 해당 플랫폼의 기계어로 해석하고 실행합니다.
- 가상의 컴퓨터 역할을 하며, 실제 하드웨어와 운영체제 위에서 동작합니다.
2.3 JVM (Java Virtual Machine) - 자바 가상 기계
3. 현실 세계와 가상 세계의 비교
- 현실 세계: 하드웨어 -> 운영체제 -> 소프트웨어 개발 도구
- 가상 세계 (자바 월드): 가상의 컴퓨터 (JVM) → JVM OS (JRE) → JVM용 소프트웨어 개발 도구 (JDK)
4. 자바 프로그램의 개발과 구동 과정
- 자바 소스 작성:
Start.java
파일 작성
- 컴파일: JDK의 자바 번역기를 통해 자바 파일을 바이트코드로 변환
- 실행: JRE를 통해 JVM 상에서 바이트코드 실행
- 플랫폼 독립성: 각 플랫폼에 맞는 JVM을 통해 동일한 프로그램을 구동
5. Write Once Run Anywhere
자바의 이러한 구조는 개발자가 특정 플랫폼에 종속되지 않고, 한 번 작성한 프로그램을 다양한 플랫폼에서 실행할 수 있게 해줍니다.
6. 프로그램의 메모리 사용 방식
6.1 코드 실행 영역
- 프로그램의 명령어가 실행되는 영역입니다.
- 기계어를 포함한 모든 프로그래밍 언어가 공통으로 사용합니다.
6.2 데이터 저장 영역
- 프로그램의 데이터를 저장하는 영역입니다.
7. 객체 지향 프로그램의 메모리 사용 방식
객체 지향 프로그램에서는 데이터 저장 영역을 다음 세 개의 영역으로 분할하여 사용합니다.
7.1 스태틱(Static) 영역
클래스 정보와 같은 정적 데이터
를 저장합니다.
프로그램 시작부터 종료까지 유지
됩니다.
7.2 스택(Stack) 영역 (선입선출)
- 지역 변수, 매개변수 등의 임시 데이터를 저장합니다.
함수 호출과 함께 생성되고, 함수가 종료되면 사라집니다
.
7.3 힙(Heap) 영역
동적으로 할당된 객체
를 저장합니다.
가비지 컬렉션에 의해 관리
됩니다.
- 스태틱, 스택, 힙 영역을 포함하는 부분은 T 자 모양으로
T메모리구조
라고 지칭하겠습니다.
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
main 메서드 동작 방식 (0) | 2023.08.17 |
---|---|
자바에 존재 하는 절차적 구조적/프로그래밍의 유산 (0) | 2023.08.17 |
번외. 스프링프레임워크 (0) | 2023.08.17 |
UML , CBD +SOA , 객체지향 4대 특성 (0) | 2023.08.17 |
기계어에서 객체 지향 프로그래밍 언어로 (0) | 2023.08.17 |