Java 플랫폼 & JDK & JRE & JVM

devyumi·2024년 6월 13일
0

Java

목록 보기
7/14

Java 플랫폼

  • Java로 작성된 프로그램이 실행되는 특정한 환경

  • 모든 Java 플랫폼은 JVMJava API로 구성된다.

Java API

  • Java로 응용 프로그램을 만들 때 사용할 수 있는 소프트웨어 구성 요소의 모음
  • 쉽게 말하자면, Java로 프로그래밍을 할 때 유용하게 사용할 수 있는 클래스들의 집합을 뜻한다.

1) Java SE

  • Java 프로그래밍 언어의 핵심 기능을 제공하는 플랫폼

  • 대표적으로 JDK가 있으며, 주요 패키지로는 java.lang.*, java.io.*, java.util.*, java.awt.* 등이 있다.

  • 우리가 StringTokenizer을 사용할 수 있는 이유는 Java SE 플랫폼이 제공하는 JDKjava.util 패키지 덕분이다.


2) Java EE (Jakarta EE)

  • 대규모, 다층, 확장성, 신뢰성 등을 특징으로 하는 기업용 웹 기반 애플리케이션을 개발하고 실행하기 위한 플랫폼

  • Java SE 플랫폼 위에 구축되어 있다.

  • ex) JDBC, JSP, Servlet, XML, WAS


3) Java ME

  • 휴대전화, 셋톱박스 등의 임베디드에서 Java 응용 프로그램을 실행할 수 있도록 하는 플랫폼

4) JavaFX

  • 풍부한 GUI를 제공하여 RIA을 개발할 수 있도록 하는 플랫폼

  • UI, 이벤트 처리, 미디어 재생 등의 기능을 JavaFx로 개발할 수 있다.

RIA

  • 중앙 서버와 독립한 클라이언트-서버 구조의 애플리케이션



JDK (Java Development Kit)

  • Java로 개발 시 필요한 개발 도구 모음

  • JRE, JVM을 포함한다.

  • 개발 도구로는 javac(컴파일), java(실행), javap, apt, jar 등이 있으며, jdk-version > bin에서 확인할 수 있다.


JRE (Java Runtime Environment)

  • Java 프로그램을 실행할 때 필요한 환경을 제공하는 소프트웨어

  • JVM, Library를 포함한다.

  • Java 코드를 라이브러리와 결합하여 JVM 인스턴스를 만들고, 코드가 실행될 수 있도록 한다.

  • jdk-version > lib에서 확인할 수 있다.


JVM (Java Virtual Machine)

  • Java를 사용한 프로그램을 구동하는 프로세서

  • 특징
    1) OS에 종속받지 않고 독립적으로 개발이 가능하다.
    -> 하나의 자바 바이트 코드로 모든 OS에서 동작할 수 있기 때문이다.

    2) OS에게 메모리를 할당 받고 자동으로 관리한다.

  • 과정
    소스코드(.java) -> 컴파일(javac.exe) -> 자바 바이트코드(.class) -> JVM -> 이진 코드 -> HW

JVM (Java) vs WOCA (C)

  • OS에 독립적 / OS에 종속적
  • OS가 달라도 같은 이진 코드를 반환함 / OS마다 다른 이진 코드를 반환함


JVM Runtime Data Area

  • JVM이 Java 프로그램을 실행하기 위해 OS로부터 메모리를 할당 받은 공간

  • 자바 애플리케이션이 실행될 때 사용되는 데이터들이 이곳에 적재된다.

  • Runtime Data Area는 총 5개의 영역으로 구분된다.
    1) Method Area
    2) Heap Area
    3) Stack Area
    4) PC Register
    5) Native Method Stack


JDK & JRE & JVM 도식화




참고

0개의 댓글

관련 채용 정보