자바의 가장 큰 장점 중에 하나가 하드웨어, 운영체제에 상관없이 컴파일된 코드가 독립적이라는 것이다. 일반적인 프로그램은 Program, OS, H/W가 있지만, 자바는 Program, OS, H/W, JVM이 존재한다. 바로 이 JVM이 CPU, OS에 관여하지 않고 독립적인 실행이 가능하도록 만들어주는 것이다. 자바 컴파일 과정 컴파일 타임 환경 개발자가 소스 코드를 작성한다. (.java 작성) 자바 컴파일러가 자바 소스 코드를 컴파일한다. 이 때 컴파일된 코드는 아직 컴퓨터가 읽을 수 없고 자바 가상 머신이 이해할 수 있는 바이트 코드(.class) 파일이다. 자바 바이트 코드를 JVM의 클래스 로더에게 전달한다. JVM은 크게 클래스 로더, 런타임 데이터 영역, 실행 엔진으로 구분할 수 있다. ..