[Tistory] [OOP] C2. 자바의 절차적/구조적 프로그래밍

원글 페이지 : 바로가기

1. JDK, JRE, JVM ● 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 변수 ● 스택 영역: 지역변수, 매개변수 ● 힙 영역: 배열과 객체 [멤버] 속성, 객체 변수 [참고] https://velog.io/@korea3611/Java-main-%EB%A9%94%EC%84%9C%EB%93%9C%EA%B0%80-%EC%8B%A4%ED%96%89%EB%90%A0-%EB%95%8C-T%EB%A9%94%EB%AA%A8%EB%A6%AC%EC%97%90%EC%84%9C%EB%8A%94-%EB%AC%B4%EC%8A%A8-%EC%9D%BC%EC%9D%B4-%EC%9D%BC%EC%96%B4%EB%82%A0%EA%B9%8C [Java] main() 메서드가 실행될 때, T메모리에서는 무슨 일이 일어날까? 이 글은 ‘스프링 입문을 위한 자바 객체 지향의 원리와 이해’ 책을 읽고 작성한 글입니다. Intro 자바를 공부하면서 메모리 구조에 대한 개념은 자바를 처음 공부했던 초창기부터 많이 들었었습니 velog.io

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다