Java 이전 C, C++은 하드웨어에 의존적 - 다른 종류의 하드웨어에서 실행하기 위해서는 재 컴파일 필요 ex) 윈도우에서 컴파일한 파일을 리눅스에서 실행 못함
Java는 한번 작성 및 컴파일 된 결과물이 어디서든 동작 가능 - JVM (Java Virtual Machine)이 핵심