Java class loading

  • Loading is the process of locating the binary representation of a type and bringing it into the JVM. type is class, interface or arrays.
  • Linking is the process of taking the type and incorporating it into the runtime state of the JVM so that it can be executed.
  • Initialization is the process of executing the initializers of a type (static initialisers for classes; static field initializers for classes and interfaces).
  • When a type becomes unreachable (i.e. the running application has no references to the type), it becomes eligible for garbage collection. This collection is called type unloading.