Maison >Java >javaDidacticiel >Explication détaillée de la façon dont Java implémente le chargement statique réfléchissant et le chargement dynamique d'un exemple de code
1. La différence entre les classes Java chargées dynamiquement et les classes chargées statiquement
La nouvelle façon de créer des objets s'appelle le chargement statique et l'utilisation de Class.forName. (" XXX ") est appelé chargement dynamique. La différence essentielle entre eux est que le programme source d'une classe chargée statiquement est chargé lors de la compilation (doit exister), tandis que le programme source d'une classe chargée dynamiquement peut être absent lors de la compilation (le le programme source n’a pas besoin d’exister).
2. Pourquoi est-il nécessaire de charger dynamiquement les classes
D'après ma propre compréhension, le chargement dynamique des classes augmente la flexibilité du programme. Par exemple, il y a 50 fonctions dans un programme, mais vous ne pouvez en utiliser qu'une seule. Si vous utilisez le chargement statique, vous devez fournir toutes les définitions de 100 fonctions avant la compilation, sinon la compilation ne réussira pas. un mécanisme de chargement dynamique, il n'est donc pas nécessaire de passer autant de temps, il suffit de définir lequel utiliser.
Chargement statique :
public class Office_Static { public static void main(String[] args) { //new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类 if("Word".equals(args[0])){ Word w = new Word(); w.start(); } if("Excel".equals(args[0])){ Excel e = new Excel(); e.start(); } } }
Lorsque ce programme est compilé, les deux classes Word et Excel doivent exister, même si Excel n'est pas utilisé après jugement Chargement <.>
Chargement dynamique :
1. Interface OfficeAble :
public interface OfficeAble { public void start(); }
2. Interface d'implémentation Word :
public class Word implements OfficeAble{ public void start(){ System.out.println("word start"); } }
3.
public class Excel implements OfficeAble{ public void start(){ System.out.println("excel start"); } }
4. Méthode principale
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!