Take this example: class Foo { SomeClass methodInFoo() } class Bar { void methodInBar() { SomeClass value = new Foo().methodInFoo(); } }   If Bar is loaded, Foo and SomeClass are not immediately loaded, because they are only referenced in method bodies. However, the JVM needs to verify that Bar's bytecode is correct. This includes verifying that all assignments are correct. In the example this is trivial, because the return type for methodInFoo is SomeC
    • Thanks