Java Virtual Machine


  • Java is compiled to byte-codes whose target architecture is the Java Virtual Machine (JVM)

  • The virtual machine is embeddable within other environments, e.g., web browser and operating system

  • Utilizes a byte-code verifier when reading in byte-codes. The Class Loader is employed for "classes" loaded over the network (enhances security)


Detailed Description:

"As we said earlier, the virtual machine can be embedded within a web browser or an operating system. Once a piece of Java code is loaded onto a machine, it is verified. As part of the loading process, a class loader is invoked and does byte code verification. From a security standpoint, this verification makes sure that the code that's been generated by the compiler (or from any source) will not corrupt the machine that it's loaded on. This is important because today's use of Java on the Internet makes it likely that we're going to be downloading programs off random machines out on the Internet around the world to run on our personal machines that we're working on. We want guarantees that the code we download will be not able to corrupt the machine that we're on. Byte code verification takes place at the end of the compilation process to make sure that the code is all accurate and correct. And byte code verification is the first phase of class loading, which makes sure that it's still okay. So byte code verification is integral to the compiling and executing of Java code."