본문 바로가기

Java

자바에 대한 이해

Java

특징
- 자바가 가상머신(JVM)만 설치하면 컴퓨터의 운영체제에 상관없이 작동한다(운영체제에 독립적)

-운영체제에 독립적이다 
Q.운영체제에 독립적이라면서 왜 설치할떄에는 운영체제에 맞춰서 설치해야할까?

A.Java 어플리케이션은 운영체제나 하드웨어가 아닌 JVM(자바가상머신)과 통신한다.

내가 작성한 java코드를 JVM이 읽을 수 있게 하려면 Java compiler를 통해 JVM이 읽을 수 있는 형식으로 변환해야한다(바이트코드로 변환해야 한다.)

-작성한 java코드를 jvm이 읽을 수 있게 하려면 java compiler가 변환해준다.(바이트코드) jvm이 읽을 수 있는 형식으로

-A.class 형식의 파일은 JVM이 읽을 수 있는 형식. 운영체제가 읽을 수 있는 형식이 아니다.
-이를 운영체제가 이해할 수 있게 하려면 한번더 변환이 필요하다.
-JVM은 자바 컴파일러에 의해 생성된 바이트코드(.class)를 클래스 로더를 통해 불러온다.

-자바는 동적로딩을 지원하기 때문에, JVM은 해당 A.class파일이 필요한 시점에 로딩하여
해당 운영체제가 이해할 수 있는 언어로 다시 변환한다. 이를 JIT compiler가 수행한다.

-JIT Compiler는 Windows, Linux, OSX 에서 수행하기 위해서는 각 운영체제에 맞추어 변환되어야 한다.

요약하자면
Java 어플리케이션은   운영체제에 독립적 <----> JVM은 운영체제에 종속적
JVM에 포함된 JIT Compiler가 바이트코드를 운영체제별로 다르게 변환해야하기 때문이다.

'Java' 카테고리의 다른 글

배열과 리스트  (0) 2023.03.18
Java에 대한 이해2  (0) 2023.03.17
Day07 - 01(래퍼 클래스)  (0) 2023.02.05
Day07  (0) 2023.02.05
Day06 - 04  (0) 2023.02.01