본문 바로가기

JAVA

[JAVA] 자바 구동방식

A.java


확장자 .java는 실행파일이 아닙니다( .exe 가 아님 )

소스파일입니다.

javac.exe 에 의하여 컴파일됩니다.

컴파일된 파일은 확장자가 .java가 아닌 .class가 됩니다.

A.class


.class 파일은 실행가능한 byte code 파일입니다.

즉, 실행하기 전 단계로만 만들어 놓은 어정쩡한 코드이며 이것 자체로 바로 실행 할 수 없습니다.

그래서 별도로 클래스파일을 실행해주는 엔진이 필요합니다.

 

java.exe에 의해 실행됩니다.

 

JVM


Java Virtual Machine

.class 파일을 실행해주는 엔진입니다. 

가상머신에 의해서 클래스파일을 메모리에 로딩하고, 메모리에 로딩함과 동시에 자기 운영체제 플랫폼에 맞게 리소스를 재 컴파일해서 실행을 하게됩니다.

 

JDK를 설치하면 그 안에 JVM이 있고 이것은 실행명령어가 들어왔을 때 실행됩니다.

1차 컴파일된 바이트 코드( .class 파일 )를 JVM은 읽어서 자기 운영체제에 맞춰서 구동될 OS리소스에 맞게 재 컴파일 됩니다.

 

JAVA는 가상머신에 의해서 구동됩니다.

그 이유는? 우리가 JAVA를 이용해서 어떤 프로그램을 만들었는데 이것이 Window에서 사용될지, MAC에서 사용될지, Linux에서 사용될지 모르기 때문에 실행이라는 명령어가 들어왔을 때 자기 운영체제 맞게 다시 컴파일하여 실행 가능하게 만듭니다.

 

즉, JVM이 있으면 어떤 운영체제에 상관없이 독립적으로 구동이 됩니다.

 

출처

https://www.inflearn.com/course/

 

'JAVA' 카테고리의 다른 글

[JAVA] 메서드가 메모리에 저장되는 과정  (0) 2021.12.18
[JAVA] 변수선언과 할당  (0) 2021.12.16
[JAVA] 하나의 폴더로 이클립스 동작하기  (0) 2021.12.15
[JAVA] JavaSE, JavaEE, JavaME  (0) 2021.12.15
[JAVA] HashMap  (0) 2021.11.18