JAVA

[JAVA] JVM

개발 공주 2023. 5. 22. 23:14
728x90

JVM 이란?

  • JVM 의 뜻은?
    • Java Virtual Machine 의 약자로 “자바 가상 머신” 이라는 뜻을 가지고 있습니다.
    • 가상 머신이란 가상의 기기를 만들어주는 것을 의미합니다.
    • 다시 말해서, 여러가지의 기기위에 Java 프로그램을 실행시킬 수 있는 가상의 기기를 만들어주는것을 의미합니다.
    •  

JVM 구성

바이트 코드

Java 프로그램 변환코드

  • 내가 작성한 코드가 운영체제가 읽을 수 있는 코드(바이트 코드💬)로 Java 컴파일러가 변환한 코드
💡 Java 컴파일러란?
내가 작성한 Java 코드들(.java 파일)을 운영체제가 읽을 수 있는 바이트 코드💬(.class 파일)로 변환하는 변환기

인터프리터

Java .class 코드 해석기

  • 운영체제가 읽은 바이트 코드를 기기(기계)가 실행할 수 있는 기계어로 번역

JIT 컴파일러

빠른 Java .class 코드 해석기

  • 인터프리터의 효율을 높여주는 서포터 해석기

메모리 영역

Java 데이터를 저장하는 영역

  • 운영체제로 부터 JVM이 할당받은 메모리 영역

클래스 로더

Java .class 바이트 코드를 메모리 영역에 담는 운반기

  • JVM으로 class(바이트 코드)를 불러와서 메모리에 저장함

가비지 컬렉터

Java 쓰레기 청소기

  • 메모리 영역에서 안쓰는 데이터를 주기적으로 흡수해가는 청소기
💡 JVM 에서 프로그램이 동작하는 흐름

 Runtime 은 “프로그램이 실행중인 상태”를 말합니다. 따라서, Runtime 시스템은 “프로그램이 실행중인 상태를 관리하는 시스템” 입니다. 

 

Java 개발환경 구성하기

  • JRE란?
    • JVM을 설치하는 방법은 JRE를 설치하는 것이다.
      • JRE 는 Java Runtime Environment 즉, 자바 실행 환경 이라는 뜻을 가지고 있습니다.
      • 하지만, JRE(JVM) 만 있다면 Java 프로그램을 실행만 시킬 수 있습니다.
      • JRE 는 .class 파일만 실행 가능합니다.
        • JDK 가 javac 명령을 통해 .java 파일을 실행가능한 .class 파일로 변환해줍니다.
  • JDK?
    • JVM과 함께 Java 프로그램을 개발할 수 있는 JDK 라는것이 있습니다.
      • JDK 는 Java Development Kit 즉, 자바 개발 키트 라는 뜻을 가지고 있습니다.
      • 우리는 Java 프로그램을 개발할 것 이기 때문에 JDK 를 설치하겠습니다.
      • JDK 는 아래 그림처럼 JRE(JVM)의 기능을 포함하고 있습니다.
      • JDK는 .java 파일들을 .class 파일들로 변환해주는 Java Compiler(javac) 기능이 있습니다.
      • JDK는 코드를 디버깅하는 jdb 등의 기능이 있습니다.

JDK 디버깅 기능 

  • Java 프로그램을 실행한다는 것은 곧 Java 코드를 한줄씩 실행하면서 명령을 수행하는것을 의미합니다.
JDK 의 Jdb 기능을 통해서 실행중인 프로그램의 코드 실행을 따라다니며 볼 수 있습니다.
  • 우리가 개발한 코드들을 한줄씩 객체와 메소드를 수행하면서 변수들도 변하는 과정을 우리가 볼 수 있도록 JDK(자바 개발 키트)는 코드를 따라가면서 변수를 볼 수 있는 “디버깅” 기능을 제공합니다.
  • 내가 작성한 코드 라인에 “중단점”을 설정하고 "디버그”모드로 프로그램을 실행하면, 프로그램이 중단점의 코드라인을 수행할때 프로그램 흐름이 일시정지되며 변수들을 볼 수 있게 도와줍니다.
디버깅 = 중단점 일시정지 + 코드 라인단위 수행

'JAVA' 카테고리의 다른 글

[JAVA] 참조형 배열로 정리하기 (컬렉션)  (0) 2023.05.27
[JAVA] 배열  (2) 2023.05.26
[JAVA] 조건문, 반복문  (0) 2023.05.24
[JAVA] 연산자  (0) 2023.05.24
[JAVA] 변수  (0) 2023.05.23