Java/OOP
[OOP] C2. 자바의 절차적/구조적 프로그래밍
JoonYong
2024. 1. 28. 03:18
1. JDK, JRE, JVM
- JDK (Java Development Kit)
- JDK는 자바 개발 도구로, 자바 환경에서 돌아가는 프로그램을 개발하는 데 필요한 도구들을 모아놓은 소프트웨어 패키지입니다.
- JVM과 JRE에 의해 실행되고 구동될 수 있는 자바 프로그램을 생성할 수 있게 해줍니다.
- JDK에는 개발, 디버깅 등을 위한 도구가 포함되어 있습니다.
- JRE (Java Runtime Environment)
- JRE는 자바 실행 환경으로, JVM과 JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고 있습니다.
- 다른 소프트웨어를 실행하도록 설계된 소프트웨어입니다.
- 여기에는 클래스 라이브러리, 로더 클래스 및 JVM이 포함됩니다.
- JVM (Java Virtual Machine)
- JVM은 자바 코드나 애플리케이션을 구동하기 위한 런타임 환경을 제공하는 엔진입니다.
- Java 바이트코드를 기계어로 변환합니다.
- JRE의 일부로, 별도로 다운로드하여 설치할 수 없습니다.
● 컴퓨터를 통해 어떠한 기능을 수행하기 위해서는 하드웨어, 소프트웨어, 그리고 운영체제 이 세 가지 요소가 기본적으로 필요하다.
● 자바가 실행되기 위해서도 마찬가지로 이 세 가지 요소가 필요한데, JVM은 이 중 하드웨어에 속한다. 그리고 이 JVM 내에서 돌아가는 소프트웨어가 JDK이며, 이를 가능하게 하는 운영체제 역할을 하는 것이 JRE이다.
2. JVM이 관리하는 T메모리 구조
자바 프로그램이 메모리를 사용할 때는 코드 영역과 데이터 저장 영역으로 나눈다.
이 때 데이터 저장 영역은 크게 스태틱 영역, 스택 영역, 힙 영역으로 나뉜다. ( T-메모리 구조 )
- 자바의 main 메서드가 실행되기 위해서는 먼저 JRE가 main 메서드를 확인한다. 그리고 프로그램을 실행하기 위한 사전 준비에 들어간다.
- JVM을 부팅하고 컴파일러를 통해 받은 목적 파일을 실행한다. 이 때, 모든 자바 프로그램이 반드시 포함하게 되는 패키지인 java.lang (java.lang 패키지가 있기에 System.out.println() 과 같은 메서드를 쓸 수 있게됩니다.) 을 스태틱 영역에 로딩한다.
- 개발자가 작성한 모든 클래스와 import 패키지도 스태틱 영역에 로딩한다. 즉, 스태틱 영역은 클래스들의 놀이터이다
- 이제 모든 전처리 과정이 끝났고, 본격적으로 main 메서드가 실행되면 스태틱 영역이 아닌 스택 영역에 main 메서드의 스택 프레임이 할당된다. 즉, 스택 영역은 메서드들의 놀이터이다. { 메서드 단위별로 스택 영역에 프레임 단위로 할당}
● 스태틱 영역: 클래스 [멤버] 속성, 정적 변수, 정적 속성 , static 변수
● 스택 영역: 지역변수, 매개변수
● 힙 영역: 배열과 객체 [멤버] 속성, 객체 변수
[참고]