1. Quelle est la différence entre une classe imbriquée statique et une classe interne ?
Classe imbriquée statique : la classe imbriquée statique est une classe interne déclarée comme statique, qui peut être instanciée sans recourir à des instances de classe externes.
Classe interne : elle doit être instanciée avant que la classe externe puisse être instanciée. Sa syntaxe semble assez étrange. (Étude recommandée : questions d'entretien Java)
2. Où dans le code suivant les erreurs de compilation se produiront-elles ?
class Outer { class Inner { } public static void foo() { new Inner(); } public void bar() { new Inner(); } public static void main(String[] args) { new Inner(); } }
Remarque : la création d'objets de classe internes non statiques en Java dépend de ses objets de classe externes. Dans les questions d'entretien ci-dessus, les méthodes foo et main sont toutes deux des méthodes statiques. dans la méthode statique, c'est-à-dire qu'il n'y a pas d'objet de classe externe, donc les objets de classe interne ne peuvent pas être créés. Si vous souhaitez créer des objets de classe interne dans une méthode statique, vous pouvez faire ceci :
new Outer().new Inner();
Réflexion en Java
Parlez-moi de votre compréhension de la réflexion en Java
La réflexion en Java est d'abord capable d'obtenir le bytecode de la classe de réflexion en Java. Il existe trois façons d'obtenir le bytecode :
Class.forName(className).
Nom de la classe.class.
this.getClass().
Ensuite, les méthodes, variables, constructeurs, etc. dans le bytecode sont mappés dans les classes Method, Filed, Constructor et autres correspondantes. Ces classes fournissent une multitude de méthodes que nous pouvons utiliser.
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!