[멋사 TIL] 13기 day2(1)

이은서·2024년 12월 3일
0

멋사

목록 보기
7/11
post-thumbnail

JVM, JRE, JDK




저번 수업에 이어 자바의 구체적인 운영방식과 구조에 대해 알고 싶어져 추가적으로 공부했다.




C, C++은 컴파일 할 때 각 "나라", 즉 운영체제에 맞게 코드를 컴파일하여 보내야 했다.
C, C++의 컴파일 법





Java는 이런 번거로움을 막고자 jvm을 이용하여, jvm의 언어로 컴파일한 파일을 넘겨주어 이 파일을 jvm이 각 운영체제에 맞게 사용하게끔 한다.
JAVA의 컴파일 법





jdk는 "자바 개발 키트"의 약자로, "레시피"를 개발한다. 즉, 개발자가 자바로 프로그래밍하는 전 과정을 도와주는 자바 코드 제작 키트이다.
JDK의 구조


수업
자바는 메모리관리를 jvm이 한다.
기본타입은 값을 바로 그릇(힙)에 담는다.
반면 string과 같은 레퍼런스 타입은 값이 담기는 것이 아니라 데이터가 공간(힙) 중에 있고 데이터가 있는 곳의 주소값을 담고 있다.

jdk

자바 번역/실행 하는 도구: jdk
운영체제 위에 자바가 올라가있음
path: 아무데서나 실행하고 싶어

번역 vs 통역
컴파일 vs 인터프리트
jvm: 각국에 파견근무하는 쉐프 (실행할 컴퓨터에 jvm 프로그램 깔기)
jvm들은 2개의 언어를 할 줄 안다.
파견된 현지언어(해당 컴퓨터의 기계어)
자바 바이트코드(주방장 공용어) : 자바로 짠 코드는 이 언어로 컴파일됨!

자바를 사용하는 레시피 개발자들은 레시피를 작성한 다음, 이걸 단 하나의 언어, <자바 바이트코드>로 번역해서 각국에 보내면
이 jvm이라는 주방장들이 이 공통 번역본을 읽고 파견된 국가의 직원들=컴퓨터 자원들 에게 현지어로 지시를 내리는 것
자바 개발자들은 자바를 실행할 컴퓨터 및 기기에 jvm이라는 프로그램을 설치해두기만 하면 개발할 때 어떤 언어로 컴파일 해야 할지 전혀 신경쓸 필요가 없는 것
자바 실행하기 위해 만들어진 것이 jvm!
jvm은 코틀린, 스칼라, 그루비, clojure 등 몇몇 다른 언어들에서 사용할 수 있는데, 이는 이 언어들 또한 <자바 바이트코드>로 컴파일되도록 만들어졌기 때문이다.
그래서 안드로이드 앱을 만들거나, 스프링 부트로 서버를 프로그래밍할 때 자바 뿐 아니라 코틀린 등도 사용할 수 있는 것!
오늘날 많은 다른 언어들 또한 jvm과 같은 각각의 가상머신들을 사용해서 동작 중!
따라서 가상머신을 사용한다는 점은 자바만의 강점은 아님
jre: 주방장 주 활동무대; 현지 식당
jre가 포함하는 것 쭝 가장 핵심적인 것: 표준 라이브러리 : 요리 기초 가이드북(채썰기 방법, 쌈장 만드는 법, 오븐 사용법)
예전엔 jre만 다운받았지만 최신버전 자바에서는 이를 포함하는 jdk를 다운받도록 함

jdk: "자바 개발 키트"의 약자
jdk: 레시피를 개발하는 회사
↳ 개발자가 자바로 프로그래밍하는 전 과정을 도와주는 자바 코드 제작 키트

0개의 댓글