Linking a class or interface involves verifying and preparing that class or interface, its direct superclass, its direct superinterfaces, and its element type (if it is an array type), if necessary. Resolution of symbolic references in the class or interface is an optional part of linking.
This specification allows an implementation flexibility as to when linking activities (and, because of recursion, loading) take place, provided that all of the following properties are maintained:
• A class or interface is completely loaded before it is linked.
• A class or interface is completely verified and prepared before it is initialized.
• Errors detected during linkage are thrown at a point in the program where some action is taken by the ...