일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 서블릿
- db
- 객체 주소
- Spring
- Statement
- MVC
- 코딩
- JDBC
- 스프링
- 타임리프
- Thymeleaf
- JSP
- Heap
- preparedstatement
- Java
- 오라클
- Session
- 자바
- 국비학원
- JavaScript
- 비전공
- 스프링부트로그
- Servlet
- List에 객체 같은 값
- 스프링로그
- scanner
- SpringBoot
- 자바스크립트
- Stack
- CachingOperationNameGenerator
- Today
- Total
sin prisa pero sin pausa
[JAVA] JVM(Java Virtual Machine) 본문
자바는 사람이 읽을 수 있는 언어(source code)로 되어있기 때문에 컴퓨터 언어(byte code)로 컴파일을 해줘야 한다.
각 운영체제에서의 개발 언어들은 각자 다른데, 이를 위해 JVM은 운영체제에 붙어있다가
자바 프로그램을 현지 운영체제 언어로 바꿔주는(Interpreter) 역할을 한다.
다른 언어들도 대부분 컴파일의 단계까지는 실행이 되지만
자바만 JVM라는 Interpreter가 실행된다.
(ex. C언어는 운영체제에 따라 코드 작성 방법이 다르다)
그렇다면 Interpreter와 Compiler의 차이점은?
Interpreter(통역)
- 프로그램을 그 때 그 때 한 줄 한 줄 해석한다.
- 비교적으로 소스코드를 분석하는 데에 시간이 적게 걸리지만, 전반적인 실행 시간은 compiler에 비해 느리다.
- 중간 개체 코드가 형성되지 않으므로, 메모리 효율적이다.
- JavaScript, Python, Ruby와 같은 프로그래밍 언어들이 interpreter를 사용한다.
Compiler(번역)
- 프로그램을 전체적으로 스캔하고 한 번에 기계어로 번역한다.
- 비교적으로 소스코드를 분석하는 데에 시간이 많이 걸리지만, 전반적인 실행시간은 Interpreter에 비해 빠르다.
- 추가적으로 연결이 필요한 중간 객체 코드를 형성하므로 더 많은 메모리가 필요하다.
- C, C++, Java와 같은 언어들이 compiler를 사용한다.
'비전공 거북이 표류기' 카테고리의 다른 글
[JAVA] public static void main(String[] args) (0) | 2021.03.17 |
---|---|
[JAVA] package 명령 규칙 (0) | 2021.03.17 |
[JAVA] 자동 메모리 관리(Garbage Collection) / stack과 heap 메모리 (0) | 2021.03.17 |
[JAVA] Java의 장점 (0) | 2021.03.17 |
프로그램이란? (0) | 2021.03.17 |