.java 파일을 컴파일해서 나온 .class 파일이 중간프로그램입니다.
컴파일시에 나오므로, java 컴파일러가 만드는거로 생각하시면됩니다.
특정운영체제에서 프로그램을 개발 실행하기위해서는 해당 운영체제의 기준(API) 에 맞춰 프로그램을 개발해야 합니다.
JAVA 는 어느 운영체제에서나 한번의 컴파일로 실행하기위해서 프로그램을 특정운영체제 기준이 아닌 JVM 이라는 자바 가상머신에 맞게 컴파일을 하고, 실행시에, 특정운영체제별 JVM 에서 실행을 하게 하는거죠.
즉, JVM 이 각 운영체제별로 만들어져 있어서 프로그래머는 한번 소스 생성하고 컴파일후, JVM 있는 어떤 운영체제에서도 실행이 가능하게 됩니다.