Bytecode Verification
When a class loader presents the bytecodes of a newly loaded Java platform class to the virtual machine, these bytecodes are first inspected by a verifier. The verifier checks that the instructions cannot perform actions that are obviously damaging. All classes except for system classes are verified. You can, however, deactivate verification with the undocumented -noverify option.
For example,
java -noverify Hello
Here are some of the checks that the verifier carries out:
That variables are initialized before they are used
That method calls match the types of object references
That rules for accessing private data and methods are not violated
That local variable accesses fall within the runtime stack
That the runtime stack ...
Get Core Java™ 2 Volume II - Advanced Features, Seventh Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.