백기선님이 진행했던 기초 자바 스터디를 주도적으로 공부하고 싶어 혼자 정리하며 스터디를 시작하게 되었다. https://youtu.be/peEXNN-oob4?si=tskSvEAXYDHaM2pG

JVM의 구성요소


학습한 것

  • JVM이란
    자바로 작성된 코드를 (.class 확장자를 가진 바이트코드) 실행할 수 있도록 하는 소프트웨어이다.

  • JVM 구성 요소
    • 위 이미지 참고
  • 컴파일 하는 방법
    javac 라는 컴파일러 도구를 사용한다. (예: java HelloWord.java) 
  • 제공되는 옵션 중 몇가지를 꼽아보았다.
    • bootclasspath (bootstrap 클래스 파일의 위치를 재정의)
    • processorpath (annotation processors 위치 설정)
    • target (하위호완성을 위해 vm 버전을 설정)

javac 제공 옵션

  • 실행하는 방법
    java 라는 실행 도구를 사용한다. (예: java HelloWord)
    제공되는 옵션 중 몇가지를 꼽아보았다.
    • classpath (디렉토리 및 클래스 파일 경로)
    • agentpath (에이전트 라이브러리 경로로써, 다른 언어로 작성된 환경(?)을 구성하는 것이 아닐까 추측해본다.)
    • javaagent (자바언어 에이전트 경로)

java 제공 옵션

  • 바이트코드란 무엇인가
    JVM이 이해할 수 있는 JAVAC 컴파일러로 변환된 1 byte 단위로 이루어진 코드이다. 

  • JIT 컴파일러란 무엇이며 어떻게 동작하는지
    많이 호출되는 바이트 코드 영역을 JVM 의 인터프리터를 거치지 않고 바로 실행하는 최적화된 컴파일러이다.

  • JDK란
    JAVA 언어를 개발할 수 있는 도구를 제공하는 소프트웨어이다. javac 컴파일러 등이 포함되어 있다.

  • JRE란
    JAVA 언어로 개발된 프로그램을 실행할 수 있는 소프트웨이다. 

  • JDK와 JRE의 차이
    javac와 같은 개발도구의 포함 유무이다.

출처 : https://www.ibm.com/blog/jvm-vs-jre-vs-jdk/

 

참고 문서 

https://www.ibm.com/blog/jvm-vs-jre-vs-jdk/

https://docs.oracle.com/javase/tutorial/getStarted/intro/definition.html 

http://www.r-5.org/files/books/computers/languages/java/main/Benjamin_Evans_David_Flanagan-Java_in_a_Nutshell_6th_ed-EN.pdf

+ Recent posts