본문 바로가기

PL/JAVA

JAVA 운영체제에 독립적

운영체제에 독립적이다.

 

자바 언어가 나오기 전까지 기존의 언어(Programing Language)는 한 운영체제(Window, Linux, Macintosh) 등의 운영체제에 적용하기 위해 많은 노력이 필요했었다.

자바 언어가 나오면서부터 이러한 적용하기 위한 노력들이 줄어들었다.

 

그 이유는 뭐였을까?

바로 애뮬레이터인 자바가상머신(JVM)을 통해서 가능해졌다.

 

[[기존 언어]] < - > [[운영체제, 하드웨어]]

[[자바 언어]] < - > [[JVM]] < - > [[운영체제, 하드웨어]] 

 

기존 언어는 운영체제와 하드웨어 등이 이해 할 수 있도록 각각 운영체제에 맞는 변환과정을 거쳐야 했음 (종속적)

자바 언어는 운영체제와 하드웨어가 아닌 JVM 하고만 통신함, 응용 프로그램으로부터 전달받은 내용을 JVM이 해당 운영체제가 이해할 수 있도록 변환해 전달함 (독립적)

 

자바 <-> 운영체제 (독립적 관계)

JVM <-> 운영체제 (종속적 관계)

 

-> 결국 자바는 운영체제를 고려하지 않고, 코드를 작성하며 JVM이 이를 각 운영체제에 맞게 변환시켜줌. (개발자가 더욱 코딩에만 집중할 수 있음)

 

.java파일 -> 사람이 읽을 수 있는 text로 이루어짐 보통 프로그래밍을 하면 이 영역에다 함.

.class파일 -> .java파일을 컴파일 한 후 생성되는 파일, 이 곳은 bytecode로 이루어져있고, JVM이 이를 각 운영체제에 맞게 기계어로 변환하고 실행시킴.

 

.java 파일 (사람이 읽을 수 있는 text언어) -> (컴파일)  -> Hello.class생성 (bytecode가 존재) -> (실행) -> "Hello, world." 출력

                                                         javac.exe                                                  java.exe(JVM) 

 

과정 > .java파일을 컴파일러에 의해 컴파일 되면 .class파일이 생성 , 생성된 .class파일의 bytecode를 JVM이 읽고, 이를 각 OS에 맞는 기계어로 번역하여 OS에 전달.

 

 

'PL > JAVA' 카테고리의 다른 글

[JAVA] 배열 선언  (0) 2020.09.02
[JAVA] static  (0) 2020.09.02
JVM( Java Virtual Machine )  (0) 2020.09.02
JAVA 프로그램의 실행 과정  (0) 2020.09.02
JDK와 SDK 차이점  (0) 2020.09.02