Heim > Java > javaLernprogramm > Java-Klassenlader und Namespaces

Java-Klassenlader und Namespaces

黄舟
Freigeben: 2016-12-20 13:32:59
Original
1716 Leute haben es durchsucht

Zusammenfassung
                                                                                                                Lassen Sie uns kurz den Klassenlader von Java und verwandte Konzepte wie das übergeordnete Delegationsmodell, den Namespace, das Laufzeitpaket usw. vorstellen. Besprechen Sie auch einige Probleme, die beim Lernen leicht verwechselt werden können.


Funktion und Klassifizierung des Klassenladers

Wie der Name schon sagt, wird der Klassenlader zum Laden von Klassen in die JVM verwendet. Die JVM-Spezifikation definiert zwei Arten von Klassenladern: Bootstrap und benutzerdefinierte Klassenlader.

Bootstrap ist der Klassenlader, der mit der JVM geliefert wird und zum Laden von Kernklassenbibliotheken wie java.lang.* usw. verwendet wird. Beispielsweise wird java.lang.Object per Bootstrap geladen.

Java stellt die abstrakte Klasse ClassLoader bereit und alle benutzerdefinierten Klassenlader werden aus Unterklassen von ClassLoader instanziiert. Der System Class Loader ist ein spezieller benutzerdefinierter Klassenlader, der vom JVM-Implementierer bereitgestellt wird. Benutzerklassen werden standardmäßig geladen, wenn der Programmierer keinen Loader angibt. Der Systemklassenlader kann über die Methode ClassLoader.getSystemClassLoader() abgerufen werden.



Beispiel 1: Testen Sie den ClassLoader der von Ihnen verwendeten JVM

/*LoaderSample1.java*/

public class LoaderSample1 {
public static void main (String[] args) {
Class c;
ClassLoader cl; cl = ClassLoader.getSystemClassLoader();
System.out.PRintln(cl); while (cl != null) {
cl = cl.getParent();
System.out.println(cl);
}
try {
c = Class.forName("java.lang.Object");
cl = c.getClassLoader();
System.out.println("java.lang.Object's Loader ist " + cl);
c = Class.forName("LoaderSample1");
cl = c .getClassLoader();
System.out.println("LoaderSample1's Loader ist " + cl);
} Catch (Exception e) {
e.printStackTrace();
}
}
}

Das Obige ist der Inhalt des Java-Klassenladers und des Namespace. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn)!


Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage