Classloading

Der Class Loader

  • In Java werden die Klassen zur Laufzeit von der VM geladen
  • Class Loader erzeugt aus den Bytes auf der Platte (oder anderer Quellen) eine ausführbare Klasse in der VM
  • Hierbei kann es zu Fehlern kommen
    • Klasse nicht gefunden – ClassNotFoundException, NoClassDefFoundError
    • Klasse fehlen Methoden – AbstractMethodError
    • Klasse fehlen native Methoden – UnsatisfiedLinkError
    • Klassen passen nicht zusammen – LinkageError
    • Klasse ist unkorrekt – VerifyError
    • Klasse ist defekt – ClassFormatError

Dynamisches Laden in Java

  • Die Klassen werden geladen, wenn sie das erste Mal referenziert werden
  • Das Deklarieren einer Variablen von einem Typ führt noch nicht zum Laden des Typs
  • Die Schritte beim Laden der Klasse
    • Loading – die Bytes werden von der Platte geladen
    • Linking – die geladenen Daten werden in eine Klasse umgewandelt und die notwendigen Abhängigkeiten werden aufgelöst
    • Binding – native Methoden werden mit der Klasse verbunden
    • Initialization – die statischen Initializer werden ausgeführt

Copyright © 2025 Thomas Smits