I actually explain Java to people a little differently...
Java uses a language incomprehensible to a normal computer. Its designed for a Java-based operating system; that pretty much doesn't exist. Just like if you were trying to run a windows program on your OS10.5 computer, you will need a virtual machine emulator for your computer to understand it because they are inherently different operating systems. So when you run a Java program, you are loading the program into a virtual machine emulator that pretends to be this innocuous Java-based operating, which in turn translates the machine code into a language your computer can understand.
This translation takes time and resources and explains why Java programs always run so much slower than anything else. Theoretically, if you had this Java-based operating system installed on your computer, and you ran these Java programs natively, they would be smooth as butter; possibly even better than any program you've ever used in recent memory due to the RISC nature of the language.