Well Losely speaking, a BYTECODE is a platform
independent.
So, JVM is a MACHINE that interprets this BYTECODE
that is generated with extension .class ( after you
compile your program - source code with extension
.java)
Therefore, by machine independent is meant that:
Your program (BYTECODE) can run in most evey machine
that has installed the JVM.