Java

[Java] 01. Java 개요

Joo.v7 2024. 8. 20. 21:53

Chapter 1: Java 소프트웨어 플랫폼 소개

  • Java 소프트웨어 플랫폼
  • Java 프로그래밍 언어
  • Write Once Run Anywhere

Chapter 2: Java 가상 머신

  • Java 가상 머신 개요
  • Java 동작 원리
  • JDK와 JRE
  • JVM 언어

Java 실행/개발 환경 설치


Chapter 1: Java 소프트웨어 플랫폼 소개

  • Java 소프트웨어 플랫폼: Java 언어로 기술된 프로그램을 개발하고 실행할 수 있는 소프트웨어 모임의 총칭.
  • Byte Code : Virtual Machine에서 동작하는 실행 프로그램을 위한 이진 표현법으로, VM은 byte code를 각각의 HW Architecture에 맞는 binary code(기계어)로 변환하여 실행.
  • Java Virtual Machine: VM은 크게 System VM, Process VM으로 나눌 수 있다. JVM은 대표적인 Process VM이다.

Java의 실행 과정

  • Write Once Run Anywhere: Java 프로그래밍 언어로 작성된 소스코드는 Java 컴파일러를 통해 Java 바이트 코드(.class)로 컴파일 되고, 바이트 코드는 JVM 상에서 실행된다. 이런 구조가 WORA를 가능하도록 만든다.

 


Chapter 2:  Java Virtual Machine

  • Virtual Machine은 컴퓨팅 환경을 소프트웨어로 구현한 것으로 크게 System VM과 Process VM으로 구분된다. (JVM은 Process VM에 해당한다.)
  • Process Virtual Machine: OS안에서 일반 응용 프로그램을 구동하고 단일 프로세스를 지원하고, 주 목적은 작성된 프로그램이 모든 플랫폼에서 동일한 방식으로 실행되는 것을 허용하고 실행을 위한 HW나 OS의 부분을 가져오는 독립적인 프로그래밍 환경을 제공하는 것이다.
  • Java Virtual Machine: Java byte code를 실행하는 VM이며, interpreter / JIT 컴파일 방식으로 다른 컴퓨터에서 byte code를 실행할 수 있도록 구현된다.

 

  • Java 동작원리: JVM은 라인별로 바이트 코드를 읽어 기계어로 변환해 실행하며, 기본적으로는 Interpreter를 통해 실행을 하지만 자주 등장하는 바이트 코드일 경우 JIT 컴파일러로 컴파일하는 방법을 통해 실행 방법을 최적화한다.
    • Interpreter: 한 줄 단위로 읽어서 해석하고 실행, byte code는 기본적으로 Interpreter 방식으로 동작한다.
    • JIT (Just In Time) 컴파일러: Interpreter 방식으로 동작하다가 적절한 시점에 바이트 코드 전체를 컴파일하여 네이티브 코드로 변경하고, 해당 메소드를 더 이상 인터프리팅 하지 않고 네이티브 코드로 직접 실행한다. 네이티브 코드를 실행하는 것이 인터프리팅보다 빠르고, 네이티브 코드는 캐시에 보관하기 때문에 한 번 컴파일된 코드는 계속 빠르게 실행된다. 
             * 네이티브 코드(native code): 특정 프로세서에서 실행을 하기 위해 컴파일된 언어 
  • JDK와 JRE
    • JDK (Java Development Kit): Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK(Software Development Kit)
    • JRE (Java Runtime Environment): Java 가상 머신, Java 클래스 라이브러리, Java 명령 및 기타 인프라를 포함한 컴파일된 Java 프로그램을 실행하는데 필요한 패키지 (즉, 읽기 전용)

 

 

 

class-programming_with_java/Module 01 Java 개요/contents/14_lab1-1.adoc at master · gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com

 


 

 

출처: https://github.com/gikpreet/class-programming_with_java/tree/master

 

GitHub - gikpreet/class-programming_with_java

Contribute to gikpreet/class-programming_with_java development by creating an account on GitHub.

github.com