이는 Sun이 자바의 cross-platform(여러 종류의 컴퓨터 플랫폼에서 동작할 수 있다는 것을 뜻하는 용어)의 장점을 나타내려고 내건 슬로건이다. 전통적인 언어 (C, C++) 등으로 작성된 프로그램들을 컴파일하고 나면 특정 하드웨어가 이해할 수 있게 바꿔야했다
자바 컴파일러는 바이트코드(byte code)라고 불리는 중간 언어로 바꾸고 이 바이트 코드를 JVM에서 실행시키는데, JVM이 바이트코드를 해당 하드웨어가 이해할 수 있는 머신코드로 바꿔준다. 근데 왜 바이트코드로 중간에 바꾸는 걸까?