Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    text
    copied!<p>The best source of information is probably the relevant section in the JVM specification, <a href="https://docs.oracle.com/javase/specs/jvms/se7/html/jvms-4.html#jvms-4.10" rel="nofollow noreferrer">4.10 Verification of class Files</a>.</p> <p>See the link for details, but broadly:</p> <blockquote> <p>Linking-time verification enhances the performance of the interpreter. Expensive checks that would otherwise have to be performed to verify constraints at run time for each interpreted instruction can be eliminated. The Java Virtual Machine can assume that these checks have already been performed. For example, the Java Virtual Machine will already know the following:</p> <ul> <li>There are no operand stack overflows or underflows.</li> <li>All local variable uses and stores are valid.</li> <li>The arguments to all the Java Virtual Machine instructions are of valid types.</li> </ul> <p>The verifier also performs verification that can be done without looking at the code array of the Code attribute (§4.7.3). The checks performed include the following:</p> <ul> <li>Ensuring that final classes are not subclassed and that final methods are not overridden (§5.4.5).</li> <li>Checking that every class (except <code>Object</code>) has a direct superclass.</li> <li>Ensuring that the constant pool satisfies the documented static constraints; for example, that each <code>CONSTANT_Class_info</code> structure in the constant pool contains in its <code>name_index</code> item a valid constant pool index for a <code>CONSTANT_Utf8_info</code> structure.</li> <li>Checking that all field references and method references in the constant pool have valid names, valid classes, and a valid type descriptor.</li> </ul> </blockquote>
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload