민팽로그

자바 특징 및 JVM, JRE, JDK 본문

java

자바 특징 및 JVM, JRE, JDK

민팽 2022. 3. 14. 15:31
자바의 특징
  • 운영체제에 독립적: 자바 응용프로그램은 JVM을 통하여 동작하기 때문에 운영체제에 독립적. 하지만 JVM은 운영체제에 종속적임.
  • 객체지향 언어: 상속, 캡슐화, 다형성 등 객체지향 언어의 특징을 잘 갖고 있음.
  • 자동 메모리 관리(Gargage Collection): 자바 프로그램 실행 시 가비지 컬렉터가 자동으로 메모리를 관리. 가비지 컬렉터가 사용하지 않는 메모리를 체크하고 반환하는 작업을 자동으로 수행.
  • 멀티 쓰레드 지원: 자바 멀티쓰레드 프로그램은 시스템과 관계없이 구현 가능. 관련된 라이브러리(Java)가 제공되어 구현 용이. 자바 인터프리터가 여러 쓰레드에 대한 스케줄링을 담당.
  • 동적 로딩 지원: 자바로 작성된 애플리케이션은 보통 여러 클래스로 구성 -> 실행 시 필요한 시점에 클래스를 로딩하여 사용 가능. 일부 클래스가 변경되어도 전체 애플리케이션을 컴파일하지 않아도 됨.

 

JVM(Java Virtual Machine)
  • 자바 애플리케이션은 JVM를 통해서 실행됨. 
  • 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행.
  • 자바 컴파일러가 자바 바이트 코드를 생성하면 JVM이 기계어 코드로 해석하여 실행.
  • 하드웨어에 맞게 완전히 컴파일된 상태가 아니라 실행 시에 해석되기 때문에 속도가 느리다는 단점 -> 최근에는 기술 발전으로 속도 문제가 많이 개선됨.

 

JRE와 JDK
  • JRE(Java Runtime Enviornment): JVM과 자바 API로 구성. 자바 응용 프로그램을 실행하는 데에 필요한 환경을 구성. 
  • JDK(Java Development Kit): JDK를 설치하면 JVM 및 자바 API 등 자바를 개발하는 데에 필요한 프로그램들이 설치됨. 자바 프로그램을 개발할 수 있는 환경을 제공. JDK는 JRE를 포함하므로 JRE를 별도로 설치할 필요가 없음.

 

 

reference

Java의 정석 - 남궁성

https://d2.naver.com/helloworld/1230

Comments