Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- org.json
- multi update
- JobExecutionAlreadyRunningException
- 스테이지에 올리기
- 문자형을 날짜형으로
- JSON 분할
- spring reactive programming
- jar 소스보기
- 마이바티스 트랜잭션
- JSONArray 분할
- str_to_date
- ChainedTransactionManager #분산데이터베이스 #Spring Boot #MyBatis
- 스프링 배치 메타 테이블
- 스프링 웹플럭스
- 성능개선
- JSONObject 분할
- 날짜형을 문자형으로
- spring webflux
- Meta Table
- 무시하기
- JSON 분해
- nonblocking
- JSON 분리
- date_format
- 마리아디비
- 폐기하기
- git stage
- batchInsert
- 스프링 배치 공식문서
- 스프링 리액티브 프로그래밍
Archives
- Today
- Total
ebson
[JAVA STUDY] JDK, JRE, JVM 각각의 개요와 역할의 이해 본문
JDK, JRE, JVM
1. 컴퓨터는 자바 언어를 어떻게 이해하는가?
- 자바로 작성한 코드를 실행하면, 0과 1로 구성된 바이트코드(바이너리코드)로 컴파일함
- 이 과정의 주체 프로그램을 컴파일러라고 함
- 바이트 코드 : 0과 1로 이루어진 코드로서 컴퓨터가 이해할 수 있음
- 컴파일 : 인간이 이해하기 쉬운 언어를 기계어로 번역하는 과정
- 컴파일러 : 컴파일을 하는 프로그램
2. JVM의 역할은 무엇인가?
- 0과 1의 조합을 운영체제마다 다르게 이해함
- 그래서 C언어의 경우, 윈도우용, 맥용, 리눅스용 컴파일러를 각각 필요로 함
- 그러나 자바는 자바 컴파일러만을 사용함
- 그리고 자바 컴파일러가 생성한 바이트 코드를 윈도우, 맥, 리눅스 위의 JVM에게 줌
- 그래서 JVM이란 바이트 코드를 자바 컴파일러와 운영체제가 호환하도록 하는 역할임
- 다시 말해서, JVM이 자바 컴파일러가 준 바이트 코드를 각 운영체제에 맞게 번역함
- JVM은 자바를 설치하면 함께 설치됨
- JVM은 그루비, 스칼라, 코틀린 프로그램에서도 사용됨
- -> 결론 : 보통의 프로그래밍 언어는 OS마다 다른 컴파일러가 필요하지만, JAVA는 JVM이 바이트코드를 OS에 맞게 번역해 주며 이 장점 덕에 JAVA외 언어에서도 사용함
- JVM은 Java Virtual Machine의 약자임
- JVM은 OS별로 존재함
- JVM은 바이너리 코드를 읽고 검증하고 실행함
[ 그림 1 ] 컴파일러와 JVM의 역할
3. JRE는 무엇인가?
- JRE는 Java Runtime Environment의 약자임
- JRE는 JVM과 자바 프로그램 실행에 필요한 라이브러리의 집합임
- JVM의 실행 환경을 구현함
4. JDK는 무엇인가?
- JDK는 Java Development Kit의 약자임
- JDK는 JRE와 자바 프로그램 개발을 위한 도구를 포함함
- JDK는 컴파일러, 디버그 도구 등을 포함함
- -> 결론 : JVM < JRE < JDK 순서로 포함됨, 그래서 JDK를 설치하면 JRE와 JVM도 함께 설치됨, 따라서 Java의 버전은 JDK의 버전을 의미함
[ 그림 2 ] JDK > JRE > JVM
5. Java의 버전과 종류(JDK의 버전과 종류)
- 1995년 JDK Beta를 시작으로 2021년 9월에 Java SE 17버전이 출시됨
- JDK 5 에서 Generic 기능이 추가됨
- JDK 8 에서 Lambda 기능이 추가됨
- 프로그램에는 LTS(Long Time Support)로서 오래써도 되는 버전이 있음
- JDK 종류로는 ORACLE, AZUL, OpenJDK, Red Hat/CentOS 등이 있다.
- Oracle JDK는 오라클에서 만든 것으로 개인에게는 무료, 기업용은 유료임
- Open JDK는 Oracle JDK와 비슷한 성능이지만 언제나 무료임
- -> 결론 : JDK에는 버전이 있고 각 버전별로 새로운 기능이 추가되거나 기존 기능이 사라짐 그리고 JDK에는 종류가 있고 기능 자체는 모두 동일하나 성능과 비용의 차이가 있음
[ 그림 3 ] JDK 버전
[ 그림 4 ] JDK 종류
6. 총정리
- 프로그램 언어는 컴파일러를 거쳐 컴퓨터가 이해할 수 있는 바이트 코드가 됨
- 보통의 프로그램 언어는 운영체제마다 다른 컴파일러를 사용함
- 자바는 동일한 컴파일러를 사용하고 운영체제마다 JVM이 한번 더 번역함
- JVM은 0과 1을 실행, JRE는 자바 실행에 필요한 라이브러리의 집합, JDK는 컴파일러와 디버거를 포함한 통합 개발도구임
- JDK > JRE > JVM 순서로 포함됨
- JDK에는 버전과 종류가 있음 많이 쓰는 버전은 LTS 버전으로 Java 8 과 Java 11 이 있고 많이 쓰는 종류로는 Oracle JDK와 Open JDK가 있음
참고 출처
- ‘자바를 공부하기 전에 알아두면 좋을 것들!! #1 (JDK, JRE, JVM 알아보기)’, 공부하는 개발자, Youtube, 2020.03.27.
- https://www.youtube.com/watch?v=f0cAmTYo4tQ
'DEV-STUDY, ETC.' 카테고리의 다른 글
LG CNS DEVON FRAMEWORK (0) | 2022.08.28 |
---|---|
데이터독(Datadog) (1) | 2022.08.28 |
젠킨스(JENKINS) (0) | 2022.08.28 |
지라(JIRA) (0) | 2022.08.28 |
[JAVA STUDY] JAVA 프로그램의 빌드 도구 Ant, Maven, Gradle 의 비교와 이해 (0) | 2022.08.15 |
Comments