JVM 은 Java Virtual Machine 의 약자로, 자바 가상 머신입니다.
우리는 인텔리제이나 이클립스 같은 ide 에서 자바 프로그래밍 언어를 작성할 수 있습니다.
이 코드를 작성한 후 컴파일 시키면 자바 컴파일러에서 바이트코드로 컴파일 됩니다.
이 바이트코드는 아무런 플랫폼에 종속되어 있지 않기 때문에, 하드웨어나 운영체제에 영향을 받지 않습니다.
맥에서 코드를 작성하건 윈도우에서 코드를 작성하건 같은 코드인데 에러가 나지 않는 건 이 바이트코드 덕분입니다.
JVM 은 이 바이트 코드들을 실행시킬 수 있게 도와주는 역할을 합니다.
순서를 정리하자면
1. 자바 코딩
2. 컴파일
3. 자바 컴파일러(javac)가 바이트코드로 코드를 컴파일함
4. 컴파일 된 파일이 .class 파일로 생성됨
4. JVM 이 클래스 파일을 실행시킴
5. 실행됨
역할
1. 바이트코드 실행
- 자바 고유 코드를 먼저 자바 컴파일러에 의해 바이트코드로 컴파일 됩니다. 이 바이트코드는 JVM 에 의해 실행됩니다.
2. 메모리 관리
- jvm 은 자바 프로그램의 메모리를 관리합니다. 주로 가비지 컬렉션을 통해 사용하지 않는 메모리 공간을 자동으로 정리합니다.
3. 플랫폼 독립성 제공
- jvm 은 운영체제와 하드웨어에 영향을 받지 않습니다. 따라서 이 바이트코드들을 여러가지 운영체제에서 실행시킬 수 있습니다.
구성요소
- 클래스로더 : 자바 클래스 파일을 로드하고, 이를 jvm 메모리로 읽어들입니다.
- 메모리 관리 : 힙과 스택을 포함한 다양한 메모리 영역을 관리합니다.
- 가비지 컬렉터 : 쓰지 않는 가비지 메모리들을 모아둡니다.
'JAVA' 카테고리의 다른 글
| [JDK | JRE] JDK 와 JRE 의 차이는 무엇일까? (2) | 2025.04.16 |
|---|---|
| [JAVA] 객체지향 언어 JAVA (0) | 2025.04.16 |
| [복습] GetMapping 과 RequestMapping 의 차이 (0) | 2025.04.15 |
| [복습]어노테이션 @Controller 와 @RestController 의 차이 (0) | 2025.04.15 |
| 프레임워크란 무엇일까? (0) | 2025.03.28 |