티스토리 뷰
[자바 컴파일러(Java compiler)]
- 자바 컴파일러(javac)는 자바를 가지고 작성한 자바 소스 코드(.java)를 자바 가상머신(JVM)이 이해할 수 있는 자바 바이트 코드(.class)로 변환한다.
- 자바 컴파일러는 자바를 설치하면 javac.exe라는 실행 파일 형태로 설치 된다.
[자바의 동작 과정]
1. Compile: '.java' 확장자가 붙은 소스코드를 class 확장자가 붙은 실행 파일로 변환
2. Run: class 확장자가 붙은 파일을 'java'로 실행
[javac]
'javac' 를 통해서 컴파일을 한다. 터미널에 'javac'를 입력하면 사용법을 볼 수 있다.
(1) javac가 있는 위치
- Windows - C:\Program Files\Java\jdk-x.x.x\bin 폴더 하위에 java.exe 와 javac.exe 프로그램이 cmd 창에서 java와 javac 명령어를 쳤을 때 실행되는 파일이다.
(2) 자바 컴파일 및 실행 방법
[자바 바이트 코드(Java bytecode)란?]
- 자바 바이트 코드(Java bytecode)란 자바 가상머신이 이해할 수 있는 언어로 변환된 자바 소스 코드를 의미한다.
- 자바 컴파일러에 의해 변환되는 코드의 명령어 크기가 1바이트라서 자바 바이트 코드라고 불린다.
- 자바 바이트 코드의 확장자는 .class 이다.
- 자바 바이트 코드는 자바 가상머신만 설치되어 있으면, 어떤 운영체제에서 라도 실행될 수 있다.
[JIT(Just In Time) 컴파일러]
JIT(Just In Time) 또는 동적 번역(Dynamic translation)은 프로그램을 실제 실행하는 시점에 기계어로 번역하는 컴파일 기법이다. 전통적인 입장에서 컴퓨터 프로그램을 만드는 방법은 인터프리터 방식과 정적 컴파일 방식으로 나눌 수 있다. 이 중 인터프리터 방식은 실행 중 프로그래밍 언어를 읽어가면서 해당 기능에 대응하는 기계어 코드를 실행하며, 반면 정적 컴파일은 실행하기 전에 프로그램 코드를 기계어로 번역한다.
JIT 컴파일러는 두 가지 방식을 혼합한 방식으로 생각할 수 있는데, 실행 시점에서 인터프리터 방식으로 기계어 코드를 생성하면서 그 코드를 캐싱 하여, 같은 함수가 여러 번 불릴 때 매번 기계어 코드를 생성하는 것을 방지한다.
[JDK와 JRE의 차이]
(1) JDK(Java Development Kit)
- 자바 개발 도구
- JVM, Java API, Java Tool, Java Compiler 포함
- JRE 에서 제공하는 실행 환경 뿐만 아니라 자바 개발에 필요한 여러 가지 명령어 그리고 컴파일러를 포함한다.
(2) JRE(Java Runtime Environment)
- 자바 실행 환경
- JVM, Java API
- 자바 애플리케이션을 실행하기 위한 최소의 실행 환경을 제공한다.
[Reference]
'Study > Java' 카테고리의 다른 글
[스터디 4주차] 선택문/반복문 (0) | 2022.01.02 |
---|---|
[스터디 3주차] 연산자 (0) | 2021.12.19 |
[스터디 2주차] 데이터 타입(Primitive type, Reference type) (0) | 2021.12.12 |
[스터디 1주차] Garbage Collection(GC) (0) | 2021.12.12 |
[스터디 1주차] JVM(Java Virtual Machine) (0) | 2021.12.12 |
- Total
- Today
- Yesterday
- 파이썬
- It
- 리스트2
- CS.
- 자료구조와알고리즘 23강
- 자바
- 이차 리스트
- 코드업 기초
- 프로세스 주소공간
- Greedy sort
- 자료구조
- CS 스터디
- 리스트 복사
- CS
- 연결리스트활용
- https
- 리스트함축
- SW
- 정렬
- 완전탐색
- 리스트
- 스터디
- 운영체제
- 네트워크
- 프로그래머스강의
- 알고리즘
- 이진탐색
- 보험
- 데이터베이스
- 프로그래머스
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |