Maison> Java> javaDidacticiel> le corps du texte

Quelles sont les modifications apportées aux chargeurs de classes dans Java 9 ?

WBOY
Libérer: 2023-08-30 15:37:02
avant
618 Les gens l'ont consulté

Java 9中的类加载器有哪些变化?

Tous les programmes Java fonctionnent surJava Virtual Machine (JVM). Après la compilation, les classes Java sont converties enplatformetbytecode indépendant de la machine, et les classes compilées sont stockées sous forme de fichiers.class. Chaque fois que nous essayons de l'utiliser,ClassLoaderchargera la classe en mémoire. Ces classes sont introduites dans l'environnement Java lorsqu'elles sont référencées par leur nom. Une fois qu'une classe commence à s'exécuter, le chargement de la classe est effectué par le chargeur de classe, et la méthodemain()est un moyen de démarrer la classe.

Il y a quelques changements mineurs dans les chargeurs de classes dans Java 9 :

  • Le chargeur de classes systèmen'existe plus dans Java 9, c'est une instance de>URLClassLoader,mais une classe interne. C'est lechargeur par défautpour les cours en modules.
  • Extension Class Loadera été renomméPlatform Class Loader. Toutes les classes de la plateforme Java SE sont visibles via le chargeur de classes de plateforme, et les classes qui se trouvent dans des modules sous le processus de communauté Java mais ne font pas partie de la plateforme Java SE sont également visibles via le chargeur de classes de plateforme.
  • Une applicationne peut pas dépendre du chargeur de classe qui définit quelle classe de plate-forme, certaines classes de la plate-forme Java SE sont définies par le chargeur de classe de plate-forme, tandis que d'autres classes sont définies par lechargeur de classe bootstrapSi le. Le chargeur de classe créé par le code existant a le chargeur de classe d'amorçage comme chargeur de classe parent, nous devons alors modifier pour utiliser le chargeur de classe de plate-forme comme chargeur de classe parent.
  • Platform ClassLoader
  • n'est pas une instance deURLClassLoader, mais une classe interne.
  • Bootstrap Class Loader
  • est un>chargeur de classe intégré à la JVM. Cependant, il définit des classes pour les modules clés, tels quebase. Les applications déployées avec -Xbootclasspath/aou les applications qui utilisentnullcommeparentpour créer un chargeur de classe devront peut-être être modifiées.
  • Exemple ul>
    public class ClassLoaderTest { public static void main(String args[]) { System.out.println("Class Loader Test"); ClassLoaderTest test = new ClassLoaderTest(); try { test.showClassLoaders(); } catch(ClassNotFoundException cnfe) { System.out.println(cnfe.getMessage()); } } public void showClassLoaders() throws ClassNotFoundException { System.out.println("Classloader of this class: " + ClassLoaderTest.class.getClassLoader()); System.out.println("Classloader of Permission: " + java.sql.SQLPermission.class.getClassLoader()); System.out.println("Classloader of LinkedList: " + java.util.LinkedList.class.getClassLoader()); return; } }
    Copier après la connexion

    Sortie

    Class Loader Test Classloader of this class: jdk.internal.loader.ClassLoaders$AppClassLoader@504bae78 Classloader of Permission: jdk.internal.loader.ClassLoaders$PlatformClassLoader@299a06ac Classloader of LinkedList: null
    Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:tutorialspoint.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!