- JVM ?
java 프로그램이 어디서든 동작 가능하게 해주는 가상 자바머신 의 약자이다.
얘가 있으면 뭐가 좋을까 ?
잠시 C언어의 처리 방식을 알아보자
- C언어 처리방식

1) C언어로 된 코드가 작성되었다. 이걸 실행하려면 컴파일을 해야한다
2) 컴파일을 할때 실행시키려면 OS가 뭔지 알아야 한다. ( OS마다 코드가 달라지기 때문 )
- > 예를들어 계산기를 C언어로 만들었고 맥os와 window 에서 사용되게 하려면 코딩을 os맞춰서 두번 해야함.
3) OS에 맞게 코딩해서 주면 OS가 기계어로 번역하여 넘겨줘서 실행됨.
OS에 따라 코드가 달라진다 = > 너와 내가 할일은 두배가 된다.
- > C언어는 운영체제에 종속되어 있는 코드이기 때문이다. ( 운영체제가 가진 리소스를 쓴다는 이야기 )
그렇다면 JAVA는 어떻게 처리할까?
- JAVA 처리방식

1) JAVA로 된 코드가 작성되었다. 이걸 컴파일해서 .class라는 파일로 만들었다.
2) .class라는 파일을 JVM에 전달한다
3) JVM은 받은 클래스를 로드하고, 순서대로 실행한다.
4) OS는 JVM이 주는 순서대로 기계어로 처리하여 실행함.
C언어와 다르게 중간에 JVM이 들어갔다. 처리하는 과정이 늘었다고 볼 수 있다.
그럼 C언어보다 더 느린거 아닌가?
- JVM 의 장단점

우리가 자바언어로 코드를 작성하고 실행시키려면 클래스로 컴플릿 해야 한다. 이때 JVM은 컴플릿을 받을때 언어는
동일하나, OS에 넘겨줄때 차이가 발생한다. OS에 맞는 JVM을 설치하면 OS 에 전달하는 방식도 OS에 맞춰준다는
장점이 있다.
즉, 우리가 어떤 OS에서 작업을 하고 실행시키는지 상관 없이 JVM만 맞추어 설치하면 된다는 이야기.
= > JAVA는 JVM에 종속된 언어다 ( JVM도 OS에 맞춰서 나오기 때문에 사실 종속되었다 하기 어렵다 )
단점으로는 C언어 보다는 상대적으로 느리다 라고 할 수 있겠다.
- 그럼 자바는 컴파일 언어?
자바는 컴파일 언어라기 보다는 하이브리드 언어 라고 한다.
왜 그런가 ?

앞서 말했듯이 java를 class로 컴파일 하여 실행한다 ( 컴파일 언어의 특징 )
하지만 JVM이 class 를 한줄씩 읽고 그걸 OS에 맞춰서 번역 - > OS는 기계어로 번역 -> 실행
이런식으로 실행된다 ( 인터프리터 언어의 특징 )
그렇기 때문에 자바는 하이브리드 언어라는 이름으로 불린다.
'캠퍼스 > Java' 카테고리의 다른 글
| 10. JAVA의 기본 양식 (0) | 2022.07.27 |
|---|---|
| 09. JVM 아키텍처 (0) | 2022.07.27 |
| 07. 패키지 (0) | 2022.07.27 |
| 06. bin, src (0) | 2022.07.27 |
| 05. cmd로 HelloWorld.java 실행하기 (0) | 2022.07.27 |