posted 14 years ago
Java bytecode is a special language that the Java Virtual Machine (JVM) understands. The JVM is basically a program that knows how to read bytecode and talk to a specific operating system/platform. So, there is a JVM for windows XP, a JVM for linux, a JVM for Mac OS.10, etc.
You can give the exact same .class file (which is bytecode) to any JVM, and it will interpret it for the machine where it runs.
this is vastly different from something like C. You'd need to compile your C code for each platform, and make sure you sent the correct (set of) file(s) for that OS. That often lead to maintenance nightmares.
There are only two hard things in computer science: cache invalidation, naming things, and off-by-one errors