Maison  >  Article  >  Java  >  Questions d'entrevue courantes pour la réflexion Java

Questions d'entrevue courantes pour la réflexion Java

(*-*)浩
(*-*)浩original
2019-12-28 14:56:033775parcourir

Questions d'entrevue courantes pour la réflexion Java

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 :                                                                      :Java commun questions d'entretien)

Dans l'environnement d'exécution Java, pour n'importe quelle classe, pouvez-vous savoir quels attributs et méthodes cette classe possède ?

Pour n'importe quel objet, l'une de ses méthodes peut-elle être appelée ?

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.

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.

Dans quelles circonstances la sérialisation est-elle requise :

a) Lorsque vous souhaitez enregistrer l'état de l'objet en mémoire dans un fichier ou une base de données

b ; ) Lorsque vous souhaitez transférer des objets sur le réseau à l'aide de sockets ;

c) Lorsque vous souhaitez transférer des objets via RMI

Le proxy dynamique, c'est quoi ? Quelles sont les applications ?

Procuration dynamique :

Lorsque vous souhaitez ajouter un traitement supplémentaire aux méthodes d'une classe qui implémente une 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 d'agent actif :

AOP de Spring

Ajouter une transaction

Ajouter des autorisations

Ajouter un journal

Comment implémenter un proxy dynamique ?

Vous 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 une autre 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, compilez-le pour générer le code binaire de la classe proxy, chargez-le à l'aide du chargeur, instanciez-le pour générer l'objet proxy et enfin renvoyez-le.

Pour plus de technologies liées à Java, veuillez visiter la colonne

Tutoriel vidéo Java pour apprendre !

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!

Déclaration:
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