바이트코드(Bytecode, portable code, p-code)는 특정 하드웨어가 아닌 가상 컴퓨터에서 돌아가는 실행 프로그램을 위한 이진 표현법이다. 하드웨어가 아닌 소프트웨어에 의해 처리되기 때문에, 보통 기계어보다 더 추상적이다. 바이트 코드는 JVM이 이해할 수 있는 0과 1로 이루어진 이진코드라고 이해하면 쉽다.
왜 바이트코드가 필요할까? (왜 중간 코드가 있어야 할까? )
중간 코드가 없는 경우
N X M개의 컴파일러를 만들어야하는 수고로움이 있었다.
중간 코드가 있는 경우
중간코드를 둠으로서 N+M개의 컴파일러만 있으면 된다.
이때 중간 언어를 사용함으로서 개발자는 OS나 개발환경에 관계없이 JVM에 구동되는 코드만 작성하면 된다.
왜 Sun이 Write Once Read Anywhere 이라는 슬로건을 내걸었는지 알 수 있는 부분이다.