Skip to content
Sharp

JVM & runtime · interview question

Put the phases a class goes through before it can be used in order.

OrderingHard

Put the items in the correct order.

  1. Resolution (turn symbolic references into direct references)
  2. Verification (check the bytecode is valid and safe)
  3. Loading (find and read the class file)
  4. Preparation (allocate static fields with default values)
  5. Initialization (run static initializers and field assignments)

Answer and explanation

Correct answer

1. Loading (find and read the class file)
2. Verification (check the bytecode is valid and safe)
3. Preparation (allocate static fields with default values)
4. Resolution (turn symbolic references into direct references)
5. Initialization (run static initializers and field assignments)

Why

Verification, preparation and resolution together make up linking. Resolution may happen lazily, but it's specified as part of linking, before initialization. Initialization runs the class's <clinit>.

Test yourself on JVM & runtime

A free test with instant, explained results. No account needed.

Start free test