1. Qu'est-ce que la réflexion ?
La réflexion fait principalement référence à la capacité d'un programme à accéder, détecter et modifier son propre état ou comportement
Réflexion Java :
Dans l'environnement d'exécution Java, pour n’importe quelle classe, pouvez-vous savoir quelles propriétés et méthodes cette classe possède ? Pour n’importe quel objet, l’une de ses méthodes peut-elle être appelée ?
(Tutoriels vidéo associés recommandés : Tutoriel vidéo Java )
Le mécanisme de réflexion Java fournit principalement les fonctions suivantes :
Dans Déterminez la classe à laquelle appartient tout objet au moment de l’exécution.
Construisez un objet de n'importe quelle classe au moment de l'exécution.
Jugez les variables membres et les méthodes de n'importe quelle classe au moment de l'exécution.
Appelez la méthode de n'importe quel objet au moment de l'exécution.
2. Qu'est-ce que la sérialisation Java ? Quand la sérialisation est-elle requise ?
Pour faire simple, il s'agit de sauvegarder l'état de divers objets en mémoire (c'est-à-dire des variables d'instance, pas des méthodes) et de lire l'état de l'objet enregistré. Bien que vous puissiez utiliser vos propres méthodes pour enregistrer les états des objets, Java vous fournit un mécanisme qui devrait être meilleur que le vôtre pour enregistrer les états des objets, à savoir la sérialisation.
(Tutoriels associés recommandés : Premiers pas avec Java)
Quand la sérialisation doit-elle être effectuée :
Quand vous souhaitez Lorsque l'état de l'objet en mémoire est enregistré dans un fichier ou une base de données
Lorsque vous souhaitez utiliser des sockets pour transmettre des objets sur le réseau ;
Lorsque vous souhaitez transférer des objets via RMI ;Procuration dynamique :
Lorsque vous souhaitez ajouter un traitement supplémentaire aux méthodes de la classe qui implémente une certaine interface. Par exemple, ajoutez des journaux, ajoutez des transactions, etc. Vous pouvez créer un proxy pour cette classe, donc le nom implique que vous créez une nouvelle classe. Cette classe contient non seulement les fonctions des méthodes de classe d'origine, mais ajoute également de nouvelles classes pour un traitement supplémentaire sur la base d'origine. Cette classe proxy n'est pas définie mais est générée dynamiquement. Il présente une importance de découplage, une flexibilité et une forte évolutivité. Application du proxy dynamique : AOP de SpringVous devez d'abord définir une interface, et il doit également y avoir une classe de traitement InvocationHandler (lui transmettre l'objet de la classe qui implémente l'interface). Il existe également une classe d'outils Proxy (il est d'usage de l'appeler classe proxy car l'appel de sa newInstance() peut générer un objet proxy. En fait, il s'agit simplement d'une classe d'outils qui génère des objets proxy). Utilisez InvocationHandler pour épisser le code source de la classe proxy, le compiler pour générer le code binaire de la classe proxy, le charger à l'aide du chargeur, l'instancier pour générer l'objet proxy et enfin le renvoyer.
Questions d'entretien recommandées :questions d'entretien Java
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!