other application code -> OS -> H/W
java application code -> jvm -> OS -> H/W
jvm을 거치기 때문에 -> 속도가 느림
완전히 컴파일 된 상태가 아니라 실행시 해석됨 -> 느림
플랫폼 독립성 -> 어떤 OS이든 똑같이 동작하려고 (OS에 종속 x)
.java -> javac(컴파일) -> .class(classLoader에 저장) ->기계어 -> 실행
자바 컴파일러로 .java파일을 .class 파일(바이트코드)로 변환
바이트코드 : jvm이 해석할 수 있는 코드
바이트코드는 java프로그램이 실행되기 위해 변환되는 중간단계 코드
JVM만 있다면 어디서든 실행가능
자바 가상환경
바이트코드를 해석하고 자바 프로그램을 실행시키는 역할
실행환경 관계없다!

1. Method Area
프로그램이 실행되면 작성한 .java 파일 데이터가 저장됨
프로그램 실행시점에 한번 저장됨
프로그램 전체에서 공용으로 활용가능
static 변수 메서드가 이 공간에 위치한다

