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 |