JVM과 자바의 구동 방식

강9·2023년 11월 9일
0

Java

목록 보기
5/71
post-thumbnail

💡 JVM이란? (Java Virtual Machine)

  • 플랫폼(OS) 독립적인 개발이 가능하다
  • 자동으로 메모리는 관리해준다

JRE : JDK 실행환경 (JVM 내포)


1차 컴파일 된 bytecode(.class)를 자신의 OS에 맞게 한번 더(2차) 컴파일하여(.exe) 메모리에 로딩하여 실행

서로 다른 OS(Window, Mac, Linux)에서 만든 Java 프로그램이더라도 서로간에 실행 가능
이를 **OS의 독립적** 이라고 한다.(OS에 상관없이 실행) // Java의 장점

타 프로그램의 경우 종속적 형태이기 때문에 서로 다른 OS에서 만든 프로그램을 실행하기 어려움 (.exe 코드로 바로 생성되기 때문)

bytecode -> 중간어 코드


🔖 Java의 구동 방식 이해

  • 소스코드(.java)
  • 컴파일(javac.exe)
  • bytecode(중간어코드)
    여기까지는 IntelliJ에 연결된 JDK에서 처리 해준다

Run을 하는 순간(실행) (java.exe)
-> RPC(원격프로세서호출) : JVM이 동작한다

  • Class Loader
  • Execute
    (메모리에 로딩하고 exe로 실행)

🔖 JVM의 Memory model(Runtime Data area)

서로 다른 형태의 데이터를 4가지 형태의 메모리 형태를 통해 구동

  • Method Area
  • Heap Area (Generation)
    Thread
  • Stack Area(Call Stack Frame Area)
    PC register
    Native Method Area
  • Runtime Constant Pool(Literal Pool)

ex.
쓰레기통 : 메모리
쓰레기 : 데이터

장롱 : 메모리
옷 : 데이터

쓰레기는 쓰레기통에, 옷은 장롱에 넣듯이

profile
코린이 일기

0개의 댓글