본문 바로가기

Java/[패스트캠퍼스] 100% 환급 챌린지

패스트캠퍼스 환급챌린지 5일차 미션 (2월 5일) : 시그니처 백엔드 Path 초격차 패키지 Online. 강의 후기

https://fastcampus.co.kr/dev_online_besignature
수강 강의명

 

강의 내용

[1] JVM과 자바의 구동 방식

[2] JVM(Java Virtual Machine)이란 무엇인가?

[3] Java의 구동 방식

 

[1] JVM과 자바의 구동 방식

실행 명령어(java.exe)

내부적으로 JVM을 호출하는 명령어(실행X)

JDK를 설치하면 자바 프로그램을 구동하는 엔진(JVM)이 운영체제 위에 탑재된다.

실행 명령어를 입력하면 JVM에게 클래스 파일을 실행해달라 요청한다.

 

[2] JVM(Java Virtual Machine)이란 무엇인가?

자바를 구동하는 프로세서

어떤 클래스 파일(.class)이 실행되려면 클래스 파일이 메모리에 올라온 후에(로딩) 실행해야 함

JVM에 의해 클래스 파일(.class)이 메모리에 로딩되어 실행된다.

JDK > JRE(실행 환경) > JVM(프로세서)

 

자바 프로그램

(JVM : 윈도우용/맥용/리눅스용)  // 윈도우용 JDK를 설치하면 자바 윈도우용 JVM이 탑재된다.
(운영체제 : Window/Mac/Linux)
(하드웨어 : PC(컴퓨터))

JVM이 바이트 코드(.class, 중간어 코드)를 exe로 컴파일하여 실행함

(1) 특정 운영체제에 상관없이 실행 가능(독립적)

      운영체제 위에 JVM 프로세서가 올라오게 됨

       예) 윈도우 환경 : 만든 자바 프로그램을 맥에서 실행 가능
       예) 리눅스 환경 : 만든 자바 프로그램을 맥에서 실행 가능

(2) 중간어 코드는 바로 동작시킬 수 없음(확실하지 않은 코드)

      자바는 소스 파일(.java)을 컴파일하면 클래스 파일(.class)로 만들어짐

      자바 프로그램이 어떤 운영체제에서 실행될지 모르기 때문에 특정 운영체제에 고정시켜 컴파일 할 수 없음(.exe(x) → .class(o))

      JVM이 중간어 코드를 자신의 운영체제에 맞게 한번 더 컴파일 하여 .exe로 만든 후 메모리에 로딩하여 실행한다.

      *클래스 파일(.class) = 바이트 코드(중간어 코드)

      예) 윈도우 : 자바 프로그램을 .exe로 만들면, 맥/리눅스에서 실행 불가

.java(소스 파일) → (컴파일) → .class(중간어 코드) → (컴파일) → .exe

(3) JVM이 없으면 실행할 수 없음

      운영체제 위에 올라와있는 JVM에 의해 한번 더 컴파일한 후 실행
      JVM에 의해 구동 : 자동으로 메모리를 관리함

 

일반 프로그램

(1) 특정 운영체제에서만 실행 가능(종속적)

      다른 운영체제 위에서는 실행시킬 수 없음

      예) 윈도우 환경 : 만든 프로그램을 맥에서 실행 불가
      예) 리눅스 환경 : 만든 프로그램을 맥에서 실행 불가

(2) 바로 동작시킬 수 있음(확실한 코드)

     특정 운영체제에서 개발한 프로그램이 exe로 고정되어 컴파일 됨
     예) 윈도우 환경 : 윈도우 환경에서 동작할 수 있도록 개발이 끝나버림(fix)

 

[3] Java의 구동 방식

자바 프로그램이 어떻게 실행 되는가?

(1) IntelliJ에 연결된 JDK에서 처리

      소스 코드를 실행 가능한 코드로 만든다.

      소스 파일(.java), 컴파일(javac.exe), 바이트 코드(.class)
(2) Run(실행을 하는 순간)

      JVM이 Class Loader와 Execute 동작에 의해 클래스를 실행시킴

      클래스 로더에 의해 클래스를 메모리에 로딩시키고, 내부적으로 exe 코드를 만들어 실행

      C:\>java.exe HelloWorld

      내부적으로 java.exe 동작(JVM 프로세서 동작(=호출))

      RPC(원격 프로세서 호출) : JVM("JVM에 클래스 파일을 실행해달라 요청")
      JVM이 클래스 파일을 찾아 메모리에 로딩한 다음 자신의 운영체제에 맞게 .class(중간어 코드)를 exe로 만듦(컴파일)     

 


 

수강 화면수강 화면
수강 화면

 

본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.

https://bit.ly/48sS29N

 

패스트캠퍼스 [직장인 실무교육]

프로그래밍, 영상편집, UX/UI, 마케팅, 데이터 분석, 엑셀강의, The RED, 국비지원, 기업교육, 서비스 제공.

fastcampus.co.kr