티스토리 뷰

반응형

🚀 자바의 구성

우리가 자바를 다루면서 자바가 어떻게 운영되는지 확인할 필요가 있다.

자바의 최대 장점으로 JVM이 설치되어 있는 어느 운영체제라도 JDK를 사용할 수 있다 알고있다.

우리는 여기서 더 자세하게 알고 들어갈 필요가 있다.

개발과구동

🌠 JVM(Java Virtual Machine)

자바 바이트코드를 실행할 수 있는 스택 기반의 가상 머신을 구현한 소프트웨어이다.

JVM의 역할은 JAVA Application을 클래스 로더를 통해 읽어 들여 자바 API와 함께 실할하게된다.

때문에 JAVA와 OS에서 중계 역할을 하여 JAVA가 OS환경에 구애받지 않고 실행을 가능하게 해준다.

또한, 메모리 관리, GC(Garbage collection)을 수행한다.

🌠 JDK(Java Development kit)

흔히 우리가 자바를 개발하게 된다면 JDK를 설치해줘야한다.

JDK는 쉽게 자바 언어로 개발을 지원하는 프로그램으로 이클립스 / 인델리제이 / STS가 여기 포함된다.

또한 실행하게되면 자바 번역기.java.class 파일로 컴파일하여 JRE에 전달하게된다.

☄ 자바 번역기 - 자바 컴파일러

자바 컴파일러는 자바를 가지고 작성한 자바 소스 코드를 자바 가상 머신이 이해할 수 있는 자바 바이트 코드로 변환하며

자바 컴파일러는 javac.exe실행 파일 형태로 설치된다.

☄ 자바 바이트 코드

자바 가상 머신이 이해할 수 있는 언어로 변환한 자바 소스 코드를 의미한다.

자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불리고 있다.

이러한 자바 바이트 코드의 확장자는 .class이며
자바 바이트 코드는 JVM (자바 가상 머신)이 설치되어 있으면, 어떤 운영체제에서라도 실행될 수 있다.

🌠 JRE (JAVA Runtime Environment)

컴퓨터의 운영체제 소프트웨어 상에서 실행되고 클래스 라이브러리 및 특정 Java 프로그램이
실행해야 하는 기타 리소스를 제공하는 소프트웨어 계층이다.

JDK 및 JRE는 서로 간에 상호작용하여 사실상 모든 운영체제에서
Java 기반 애플리케이션의 완벽한 실행을 가능하게 하는 지속 가능한 런타임 환경을 구축한다.

☄ JRE 구성요소

  • 클래스로더
    • Java 클래스로더는 Java 프로그램의 실행에 필요한 모든 클래스를 동적으로 로드한다.
    • Java 클래스는 필요 시에만 메모리에 로드되므로*, JRE는 클래스로더를 사용하여 요청 시에 이 프로세스를 자동화한다.
  • 바이트코드 검증기
    • 바이트코드 검증기는 인터프리터에 전달되기 전에 Java 코드의 형식과 정확성을 보장합니다.
      코드가 시스템 무결성 또는 액세스 권한을 위반하는 경우, 클래스는 손상된 것으로 간주되어 로드되지 않는다.
  • 인터프리터
    • 바이트코드의 로드에 성공한 후, Java 인터프리터는 Java 프로그램이 기본 시스템에서 기본적으로 실행될 수 있도록
      해주는 JVM의 인스턴스를 작성한다.

🧾 Reference

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함