Programing/java

Java JVM과 JDK 이해하기

KingBini 2022. 2. 10. 23:51


컴퓨터를 사용하는 사용자가 직접 하드웨어에 데이터를 저장하는건 쉽지 않은 일 이기 때문에

사용자가 데이터를 입력하는 키보드의 데이터를 받은 운영체제가 중간에서 대신 하드웨어에게 데이터를 저장하라고 명령을내려 우리는 쉽게 데이터를 운영체제를 통해서 하드웨어에 저장할 수 있다.

사용자(키보드,마우스) ->운영체제 ->하드웨어

그리고 프로그래밍을 하는 개발자는 마우스와 키보드를 대신해서 운영체제에 명령할 수 있는
(자바)같은 프로그래밍 언어를 배워서 os 에 명령을 내린다.

언어(자바) -> os ->하드웨어



JDK

자바라는 언어로 os에 명령을 내릴때는 JDK(JAVA Development kit) 자바 개발 킷이라는 툴을 통해서 운영체제에 명령을 내릴 수 있다.



  • JDK 환경변수 하는 이유

    터미널또는 cmd 창에서 자바가 설치되어있는 경로에서 자바를 실행시 킬수있지만
    환경변수를 설정함으로써 어느 경로에서 자바를 실행치켜도 자바가 실행되게끔 설정을 해주는 것이다.

    내가 생각하기에는 일종에 c디스크에 설치 되어있는 프로그램을 바탕화면에 바로가기를 만드는 것과 비슷한거같다.


JVM

자바문서가 컴파일에서 하드웨어 명령까지의 과정

자바문서.java --(javac.exe)--> 자바문서.class--(java.exe)--> JVM(Java viture Machine) -> os -> 하드웨어


개발자가 작성한 자바문서.java를 javac.exe로 JVM이 이해할 수 있게 컴파일(번역)

->컴파일된 자바.class를 java.exe로 JVM에게 전달

-> JVM에 전달된 .class파일을 os에 전달

-> os는 전달받은 파일 내용을 바탕으로하드웨어에게 명령을 내린다.

JVM(자바 가상 머신)은 JDK 를 설치하면 설치되는 컴파일러이다.

그리고 JVM의 장점은 운영체제에 맞는 JDK를 깔았다면

자바라는 언어 하나로 각자 운영체제에 맞는 JVM으로 각기 다른 운영체제에서 사용할 수 있다는 점이다.

즉, JAVA로 프로그램을 만들면 어느 운영체제에서든지 실행이된다. 이것이바로 JVM이란 번역기 덕 이다.



(JVM이 여러나라의 언어를 할 수 있는 통역가 라고 생각하자)



컴파일이란

번역해주는 것

자바문서는 사람이이해 할 수있도록 만들어진 언어라 컴퓨터가 이해할수있도록 중간에서 JVM이란 프로그램으로운영체제가 이해할수 있도록 번역해주며 이과정을 컴파일 이라고한다.

그리고 문서의 확장자는 (문서이름.java -> 문서이름.class)가 된다.

즉,

JVM : 컴파일러(번역기)

컴파일 : 번역

자바 파일 : 사람이 이해가능한 파일

클래스 파일: 운영체제가 이해 가능한 파일


로 정리 할 수 있을 꺼 같다.