The Byte Code Verifier
This check ensures that code to be executed does not violate various semantic rules of the Language and its runtime
In particular check that pointers are legal, access restrictions obeyed and types correct
a .class file consists of some overall information including a magic number, versioning information, a constant pool, information about the class itself (name, superclass etc.), information about fields and methods with the byte codes themselves, debugging information.
The byte codes are essentially machine language for an idealized stack based machine which are translated into true machine code
- Note such stack based machines are not necessarily best for optimized performance. Compilers use rather different intermediate representation