[자바스터디] 2. 자바기초(1)
2021-java-study
2021 자바 스터디 2주차 과제
자바 기초
JVM이란?
Java Virtual Machine(자바 가상 기계)의 약자를 따서 줄여 쓰는 용어
- 자바 바이트 코드를 실행하는 주체
- Java와 OS사이에서 중개자 역할을 수행
- OS에 맞게 구현됨
- 메모리 관리, Garbage Collection 수행
- 스택 기반의 가상머신
컴파일 하는 방법
사람이 이해하는 언어를 기계어로 바꾸는 과정
자바 소스코드(.java)를 자바 바이트코드(.class)로 변경
Java Virtual Machine(자바 가상 기계)의 약자를 따서 줄여 쓰는 용어
사람이 이해하는 언어를 기계어로 바꾸는 과정
자바 소스코드(.java)를 자바 바이트코드(.class)로 변경
| javac 명령어 사용
| 디렉토리 확인
실행하는 방법
$ java 파일명
바이트코드란 무엇인가
가상 컴퓨터에서 작동하도록 만든 이진코드
- 명령어 크기가 1바이트
- 확장자는 .class
- 자바 가상 머신만 설치되어 있으면 어떤 운영체제에서도 실행 가능
JIT 컴파일러란 무엇이며 어떻게 동작하는가
Just-In_Time 의 약자로 프로그램을 실제 실행하는 시점에 기계어로 번역
- JIT 컴파일러는 JRE안에 존재
- 프로그램이 시작되고 코드를 컴파일 후에 JIT 컴파일러를 실행
JIT 컴파일러와 인터프리터
- 인터프리터 방식은 명령어를 하나씩 해석해 처리하기 때문에 전체 코드를 실행할 때는 실행 속도가 느리다. JIT 컴파일러는 클래스파일을 기계어로 한번에 컴파일 후 사용하기 때문에 코드 수행속도가 인터프리터 방식에 비해 빠르다
- 그렇지만 처음 실행 단계에서는 컴파일 과정때문에 초기 실행 속도가 느릴 수 있다.
JVM 구성 요소
1. Class Loader (클래스로더)
2. Execution Engine (실행 엔진)
3. Garbage Collector
4. Runtime Data Area
Class Loader
- 자바 컴파일러에 의해 바이트 코드로 변환된 클래스를 읽어들여 메모리에 저장
Execution Engine
- Class Loader에 의해 저장된 클래스를 기계어로 변환하고 실행하는 역할
- Interpreter 방식으로 실행되기도 하고, JIT에 의해 실행되기도 함
Garbage Collector
- Heap 영역에 생성되어 있는 객체들 중 참조되지 않는 객체를 찾아 제거하는 역할
Runtime Data Area
- JVM의 메모리 영역으로 자바 애플리케이션 실행시 사용되는 데이터를 저장하는 영역
JDK와 JRE의 차이
JDK
Java Development Kit - JRE와 개발툴
- 자바 개발 도구
- JRE와 개발을 위해 필요한 도구(javac,java)를 포함
- 오라클 JDK, OpenJDK 등이 있으나 일반적으로 오라클 JDK 사용
JRE
Java Runtime Environment - JVM과 라이브러리
- 자바의 실행 환경
- JVM이 자바 프로그램을 동작시 필요한 라이브러리 파일 등을 가짐
- 런타임 환경 제공
- JVM을 구현하는 역할
Author And Source
이 문제에 관하여([자바스터디] 2. 자바기초(1)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dustndus8/자바스터디-2.-2주차-과제-자바-기초저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)