mac에 jenv으로 여러 jdk 설치
백기선님의 java 기초 live-study 1주차 뒷북 정리
JVM이란 무엇인가#
- Java Virtual Machine
 - Java Runtime (java 실행기)
 - command line 으로 
java ~하면서 실행하는 것이 JVM 을 사용하는 것임 - JVM에는 컴파일된 java 바이트 코드가 제공되야함 제공되야함
- 각 .java 파일은 컴파일 후 .class 파일이 됨
 
 - JVM이 추구하는 방향성
- 어플리케이션 코드를 실행할 수 있는 컨테이너
 - c/c++ 보다 보안과 신뢰성이 있는 실행환경 제공
 - 개발자 손으로 메모리관리 하지 않게하기
 - 크로스 플랫폼 실행환경 제공
 
 
컴파일, 실행, 바이트코드#
컴파일 하는 방법#
- javac 를 통해 컴파일이 가능
 - command: 
javac <.java file> -d <output directory> - 이때 .class 바이트코드 파일이 나오는데 아직 완전한 기계어는 아니라 JVM에 올려서 실행해야 함
- 해당 과정을 
classloading이라고 함 
 - 해당 과정을 
 
실행하는 방법#
- javac로 컴파일한 .class 코드는 java 실행파일로 jvm을 이용해 실행할 수 있다.
 - command: 
java <.class file> - 실행되면 JVM이 메모리에 올라가고
- .class 바이트 코드를 JVM에 올려
 - intepreter가 이를 해석한다
 
 
바이트코드란 무엇인가#
- java에서 바이트 코드는 javac로 컴파일해서 나오는 .class 코드
 - 해당 코드는 JVM의 Interpreter가 해석하기 용이할 뿐, 기계어와는 다르다
 - 소스코드와 기계어 사이라고 많이 봄
 
JIT 컴파일러란 무엇이며 어떻게 동작하는지#
JVM 구성요소#
JDK와 JRE의 차이#
보충 설명#
정리에 대해서#
- 가급적 그림의 출처는 바로 아래에 남기기
 - 그림도 왠만하면 다시 직접 그려보기
 - 자신만의 표현으로 재해석 하기 (그대로 카피하면 그냥 타이핑 밖에 안됨)