본문 바로가기

Java

[Java] Java의 동작 원리와 순서

Java의 동작 원리

 

  • 1. 개발자가 소스코드를 작성한다.
  • 2. 컴파일을 해서 바이트코드로 변환시킨다. 확장자명이 class로 바뀐다
  • 3. JVM을 통해서 기계어로 바뀌어 최종적으로 컴퓨터에서 실행을 시킨다.

위 이미지에서 알 수 있는 것은 class 파일에 JVM만 있다면 어느 환경에서도 실행이 가능하다는 점이다.

자바는 리눅스든 윈도우든 유닉스 든 간에 JVM이 설치되어 있다면 실행이 가능하다는 점이 강점인 것 같다.

또한 알 수 있는 것은 JVM이 내부적으로 어떤 동작을 하는지가 Java동작에 있어서 핵심이란 것도 알 수 있다. 이러한 점을 봤을 때 궁금증이 생기는 것은 JVM이 어떻게 동작하는 지다.

Java Virtual Machine 동작원리

Java Virtual Machine JVM , 자바 가상 머신)은 자바 바이트 코드 즉, 개발자가 작성한 Java 파일에서 변환된 Class 파일을 번역해주는 역할을 한다. 다시 말해 Java와 OS 사이에서 중개를 해줌으로써 OS에 구애받지 않고 윈도우면 윈도우 맥이면 맥 리눅스면 리눅스 이와 같은 OS에서 JVM만 설치가 되어있다면 실행을 해주는 유용한 역할을 한다. 이러한 점에서 이식성이 높다. 또한 주목해야 할 것은 (garbage collection 가비지 컬렉션, GC)을 내장하고 있어 메모리 관리하기 쉽다. 가비지 컬렉션은 메모리에서 불필요하거나 사용할 수 없는 영역을 감지하여 자동으로 메모리 주소를 삭제해주는 메모리 관리 기법 중 하나이다. 이게 왜 장점이냐면 C/C++에서는 수동으로 메모리를 처리해줘야 하기 때문에 여간 번거로운 게 아니다.