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 |